1. socket() —— 创建套接字这是通信的第一步用于向操作系统申请一个网络通信端点即套接字。功能作用创建一个套接字描述符确定使用的协议族如IPv4和传输层协议如TCP。常用参数domain地址族通常填 AF_INET (IPv4) 或 AF_INET6 (IPv6)。type套接字类型TCP使用 SOCK_STREAM流式UDP使用 SOCK_DGRAM数据报。protocol具体协议通常填 0表示根据前两个参数自动选择默认协议。返回值成功返回一个非负整数文件描述符失败返回 -1。2. bind() —— 绑定地址创建套接字后它还没有具体的“身份”需要通过绑定来指定IP和端口。功能作用将套接字与特定的本地IP地址和端口号绑定。对于服务器来说这一步是必须的以便客户端能找到它。常用参数sockfdsocket() 返回的文件描述符。addr指向包含IP地址和端口信息的结构体指针如 struct sockaddr_in。addrlen地址结构体的长度。3. listen() —— 监听连接绑定好地址后服务器需要进入“等待”状态。功能作用将主动套接字转换为被动套接字开始监听来自客户端的连接请求。常用参数sockfd已绑定的套接字描述符。backlog排队等待处理的最大连接数全连接队列长度。如果连接请求过多超出的部分可能会被拒绝。4. accept() —— 接受连接当有客户端发起连接时服务器通过这个函数来处理。功能作用从已完成连接的队列中取出一个连接。关键点它会返回一个新的套接字描述符专门用于与该特定客户端进行数据传输而原来的监听套接字继续负责接收新的连接请求。常用参数sockfd处于监听状态的套接字描述符。addr用于存储客户端地址信息的结构体指针可选。addrlen地址结构体长度的指针可选。5. send()/recv() —— 收发数据建立连接后双方通过这对函数进行实际的数据交换。功能作用send()向对端发送数据。recv()从对端接收数据。常用参数sockfdaccept() 返回的那个新套接字描述符。buf存放数据的缓冲区指针。len数据长度。flags标志位通常填 0。6. close() —— 关闭连接通信结束后释放资源。功能作用关闭套接字断开连接并释放操作系统分配的资源。常用参数sockfd要关闭的套接字描述符。这些函数共同构成了TCP服务器的标准工作流先创建socket再定址bind接着待机listen有人来了就握手accept然后交谈send/recv最后挂断close。这个流程确保了网络通信的有序性和可靠性。