socket TCP服务器连接多个客户端,服务端接收数据时怎么判断是哪个客户端发来的数据
用VC编写一个基于TCP/IP的异步套接字通信程序,一个服务器用多个SOCKET对象分别连接多个客户端。当一个客户端向服务器发送数据时,服务器端发生FD_READ事件,然...
用VC编写一个基于TCP/IP的异步套接字通信程序,一个服务器用多个SOCKET对象分别连接多个客户端。当一个客户端向服务器发送数据时,服务器端发生FD_READ事件,然后服务器调用recv函数来接收数据。
现在问题来了,recv的第一个参数要求填写已连接客户端的socket对象,但是有多个客户端,也就有多个已连接的socket对象,只有填写与当前发送数据客户端相应的socket才能正常接收数据,否则无法接受数据。
我应该如何判断是哪个客户端发来的数据呢?有没有什么方法在recv之前就判断发送方的socket信息? 展开
现在问题来了,recv的第一个参数要求填写已连接客户端的socket对象,但是有多个客户端,也就有多个已连接的socket对象,只有填写与当前发送数据客户端相应的socket才能正常接收数据,否则无法接受数据。
我应该如何判断是哪个客户端发来的数据呢?有没有什么方法在recv之前就判断发送方的socket信息? 展开
2个回答
2013-08-15
展开全部
wParam参数标识了已经发生了的网络事件的套接字。lParam参数的低字指定了已经发生的网络事件。
追问
正解!
在MSDN的WSAAsyncSelect函数描述就有说明:
The
wParam parameter identifies the socket on which a network event has
occurred. The low word of lParam specifies the network event that has
occurred.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询