初识网络编程

Custom Test Page

基于 TCP 的连接,服务端和客户端的网络通信需要做三件事:

  • 服务端与客户端进行连接

  • 服务端与客户端之间传输数据

  • 服务端与客户端之间断开连接

首先需要解决的问题是如何建立连接。

在 socket 编程中,服务端和客户端是通过 socket 进行连接的。

每一条 TCP 连接有两个端点,这个连接的端点就叫做套接字(socket)插口。根据 RFC 793 的定义:端口号拼接到 IP 地址即构成套接字。所以:

套接字 socket = ( IP 地址 :端口号 )

每一条 TCP 连接唯一地被通信两端的两个端点所确定。即:

TCP 连接 ::= { socket1, socket2 } = {( IP1: port1 ), (IP2:port2)}

想要建立连接,服务端需要做:

  • 创建套接字 socket()

  • 将 socket 与指定的 IP 和端口进行绑定

  • 在绑定的端口处监听请求 accept()

而客户端会简单一些:

  • 创建套接字 socket()

  • 在指定的 IP 地址和端口处使用 socket 进行连接 connect()

连接建立后,两端便可进行通信,也就是收发数据。

  • 接收数据:使用套接字接受数据并存在 buff 中

  • 发送数据:使用套接字将 buff 中的数据发出去

接发数据结束后,通过断开连接来结束通信。

Built with Hugo
Theme Stack designed by Jimmy