TCP协议是一种面向连接的协议,在数据传输之前必须先建立连接。
服务器大都可以与多个客户保持连接,因此通信过程中需要至少两个套接字
- 监听套接字
- 已连接套接字
监听套接字:有服务器端调用socket()函数创建,用于等待客户的连接请求
已连接套接字:连接建立是,由系统创建,每当监听套接字收到一个连接请求,系统便会为该连接请求创建一个新的已连接套接字,并用该套接字与客户建立连接,同时用该套接字与客户端之间进行数据交换,已连接套接字绑定的ip地址来源于监听套接字,端口号由系统随机分配。
基本通信过程
一,服务器端
1,调用socket函数建立一个套接字,用于监听
2,调用bind函数为套接字绑定端口和ip
3,调用listen函数,设置套接字处于监听状态
4,若程序不退出,则反复执行:
- 用accpet函数等待客户端连接到来,若有连接请求到来,则用一个新的套接字(已连接套接字)建立起与客户端之间的连接。
- 使用recv函数与send函数利用新建立的连接与客户端通信
- 通信完毕使用closesocket