SOCKET学习 2

  接收Windows消息要用到前面的这个函数WSAAsyncSelect,可是只有原型,没有定义,也就无法去进一步的探寻如何接收自定义消息的了。不过我有了另一个发现,那就是wParam的作用,用它可以非常方便来处理多个客户端,原来的模型只处理了lParam,因为它只有一个客户端,其实在看到wParam时就应该想一下它代表了什么,可是潜意识却认为是一个没有用的数据。这个无意中小小的发现节省了我很多“脑筋”和时间。在发现它之前我还在为如何标记、如何区分每个客户端而苦恼,不过现在都要感谢wParam了。

   在能够正常使用wParam之前也走了点小小的弯路,在它的代码里有这样一句话,Accept=accept(wParam,NULL,NULL),当我看到的时候就感觉希望来了,可是将它放到自己的程序里调试时发现Accept并不是一个四位数的值,倒像是一个未初始化的数据,接着调试网络编程里的代码,原来Accept是在它执行FD_ACCEPT时调用的,Only one,并且调用后wParam与Accept的值不同,至于accept修改了什么,依然是不得而知,从调用accept后,再去查看wParam时发现它就是那个客户端的套接字了 ,也就是说直接使用就行了,像recr(wParam, closesocket(wParam)等等。同一个客户端连接多次服务端,得到的wParam会在第一次的值的基础上一次递减,比如第一次是1812,第二次是1800,那么第三次就是1788,发现规律了吧,并且一旦不够减了会再产生一个数值,接着减。

  然后定义一个结构体的数组,这样做就可以很好的区分每个客户端的信息了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值