套接字编程

TCP套接字编程

  1. 服务器首先运行,等待连接建立(服务器进程必须先处于运行状态)
    • 创建欢迎socket
    • 和本地端口捆绑
    • 在欢迎socket上阻塞式等待接收用户的连接
  2. 客户端主动和服务器建立连接
    • 创建客户端本地套接字(隐式捆绑到本地port)
    • 指定服务器进程的IP地址和端口号,与服务器进程连接
  3. 当与客户端连接请求到来时
    • 服务器接受来自用户端的请求,解除阻塞式等待,返回一个新的socket(与欢迎socket不一样),与客户端通信
    • 允许服务器与多个客户端通信,使用源IP和源端口来区分不同的客户端
  4. 连接API调用有效时,客户端P与服务器建立了TCP连接

UDP套接字编程

UDP:在客户端和服务器之间没有连接

传输层提供端到端的进程之间的网络传输服务。

  • 没有握手
  • 发送端在每一个报文中明确地指定目标的IP地址和端口号(因为socket只绑定了本地的IP和端口)
  • 服务器必须从收到的分组中提取出发送端的IP地址和端口号