如何实现tcp/ip单个用户与单个服务器通信以及多个用户与单个服务器的通信连接
同学您好,这个问题我分开解答哈!①单个用户与单个服务器通信采用Socket进行连接,用户方面的流程是:1.新建套接字Socket s;2.确定服务器IP地址和端口号 addr = 192.168.1.12 port = 8080;3.对本机地址进行显式或隐式绑定(一般采用隐式绑定故这步可以忽略)4.开启与服务器的连接connect(s,addr);5.进行数据交互传输 send recv;6.通信结束 关闭套接字closesocket(s);
服务器方面的流程是:1.新建套接字Socket s;2.确定本地IP和端口号(不能隐式绑定)addr = 192.168.1.12 port = 8080;3.对本地IP和端口进行绑定bind(s,addr);4.对端口进行监听listen(s);5.接收一个连接 newsock = accept(s);6.进行数据交互传输 send recv;7.通信结束 关闭套接字closesocket(s)。
②单个服务器与多个用户的通信连接,用户端与①中流程相同,服务器端第5步接收了一个连接之后开始不同。服务器在接收了一个连接之后,便新建一个套接字newsock,此时要开启一个子线程来负责处理与该用户机的数据传输,而主线程继续监听端口创建新的子线程来与多个用户进行连接。C下可以采用createThread函数,
CreateThread( NULL,0,然后在chat函数中进行recv和send即可
chat, //子线程函数入口
&newsock, //传给子线程的参数
0, &Tid);
2023-07-25 广告