【TCP通信】多客户端连接一个服务器端总结

Windows下TCP通信,多个客户端连接服务器端。

一、服务器端流程实现如下:

1、通过socket函数,创建基于流式类型的socket,可名为serverSocket;

2、调用bind函数,绑定本地的监听端口号和本地IP地址;

3、调用listen函数,开始监听客户端请求。其中该函数第二个参数指定了最大连接客户端数目;

4、通过调用AfxBeginThread(ThreadFun, 0),实现创建线程处理监听后客户端请求;

5、关闭serverSocket;

 

如上流程中,通过创建线程办法实现对客户端请求的处理。

线程处理函数ThreadFun的实现流程如下:

1)调用accept等待客户端请求,并返回客户端通信的SOCKET,可名为clientSocket;

2)客户端请求接收成功后,继续调用AfxBeginThread(ThreadFun, 0)创建线程,实现对其他客户端请求做处理;

3)调用recv接收数据;

4)检测接收到数据的合法性,并调用send函数返回响应数据;

5)调用closesocket(clientSocket),关闭得到到客户端请求的socket。

二、客户端实现流程

通常流程没有加入超时处理,如下通过其他机制实现了客户端接收消息响应超时的处理。

实现流程如下:

1、创建socket基于流式SOCKET类型的SOCKET。

2、调用connect连接服务器

3、调用send发送请求数据;

4、通过select函数判断Socket接收数据是否超时。其中需要使用到FD_SET和TIME_VAL类型。

5、调用closesocket关闭客户端Socket。

 

 

你可能感兴趣的:(通信技术)