网络编程

1. 网络编程就是如何在程序中实现两台计算机的通信

  • 网络通信是两台计算机上连个进程之间的通信
  • 什么是协议
    1. 互联网包含网络上百种的协议标准,但最重要的两个协议是TCP和IP
  • TCP/IP协议族
    1. 点对点的链接机制


    图片.png
  • IP地址
    1. ip地址由两部分组成网络地址,主机地址
    2. ip地址根据网络号和主机号来分 A,B,C三类特殊地址D,E 全0和全1都保留
    3. A:0-127 B:128-191 C:192-223 D:224-239 E:240-247
    4. D类ip是专门保留的地址,他并不指向特定的网络
  • 端口
    1. 端口是通过端口号来标记 范围0-65535
    2. 系统保留的端口号 0-1023
  • 默认网关
    1. 是一个可以直接到达的IP路由器的IP地址
  • LAN, WAN, WLAN
    1.局域网,广域网, 无线局域网

2. socket 套接字

  • 网络中进程之间的通信
    1. 主要解决如何唯一标识一个进程,否则通信无从谈起
    2. 利用IP地址,协议,端口就可以进程标识网络中的进程
  • socket 套接字 是进程通信的一种方式 能实现不同进程之间的通信
  • import socket 引入套接字模块
  • socket.socket(addressFamily,Type)
    1.AF_INET(用于internet进程间的通信) 常用
    2.AF_UNIX(用于同一台机器进程间的通信)
    1. SOCK_STREAM(流式套接字,用于TCP协议)
    2.SOCK_DGRAM(数据报套接字,用于UDP协议)
  • socket.socket(socket.AF_INET,socket.SOCK_STREAM)
  • socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
  • socket 套接字常用操作
    s.bind() 绑定(主机名称、端口)到一个套接字上
    s.listen() 设置并启动TCP监听
    s.accept() 等待客户端连接
    s.connect() 连接指定服务器
    s.recv() 接受TCP消息
    s.send() 发送TCP消息
    s.recvfrom() 接受UDP消息
    s.sendto() 发送UDP消息
    s.close() 关闭套接字对象
  • TCP是一种面向连接的,可靠的基于字节流的传输通信协议
  • 流程
    1. socket 创建一个套接字
    2. bind绑定ip和port
    3. listen
  • UDP面向无连接的 不可靠的传输协议 传输速度快, 不可靠
  • 一般情况下,服务端,需要绑定端口 客户端一般不需要绑定 目的是让操作系统随机分配

5.应用层编程(FTP,SMTP)

5.1FTP 文件传输协议

  • 底层是在TCP协议完成网络数据传输
  • 封装了两个套接字完成文件操作
  • 21端口的套接字用于传输控制指令
  • 20端口传输具有文件数据
  • 启动安装FTP服务器,管理控制台
    1. 控制面板下 的程序和功能
    2. 左侧启动或关闭Windows功能
    3. internet information Services下的
    4. ftp服务器 ftp服务 ftp扩展性
    5. web管理工具

6. 收发协议

6.1 POP3

  • 用来接受邮件
    6.2 SMTP
    *发送邮件
    6.3 IMAP

    1. iis管理工具 点击确定
    2. 在window搜索中搜索iis 找到iis管理器
    3. 在左侧网站右键选择创建ftp站点

你可能感兴趣的:(网络编程)