Linux 中 socket 通信的流程及函数作用
在 Linux 中,socket 通信主要有以下流程:
首先是服务器端。服务器要先通过socket()
函数创建一个套接字,这个函数返回一个套接字描述符,它就像是一个通信端点的标识。这个函数的参数可以指定通信的域(比如 AF_INET 用于 IPv4 网络通信)、套接字类型(如 SOCK_STREAM 表示面向连接的字节流服务,常用于 TCP 通信;SOCK_DGRAM 表示无连接的数据报服务,常用于 UDP 通信)和协议类型(通常为 0,表示根据前面两个参数自动选择合适的协议)。
接着是bind()
函数,它用于将套接字与本地的地址和端口绑定。对于服务器来说,这个操作是必须的,这样客户端才能知道如何找到服务器。地址结构通常是sockaddr_in
结构(用于 IPv4),其中包括 IP 地址和端口号等信息。
然后是listen()
函数,这个函数用于将套接字设置为监听状态,等待客户端的连接请求。它有一个参数,表示等待连接队列的最大长度。
当有客户端请求连接时,a