读书人

请问一个非阻塞socket在connect后sele

发布时间: 2012-01-31 21:28:41 作者: rapoo

请教一个非阻塞socket在connect后select的问题
我创建了一个非阻塞的socket,随即connect到一个地址端口,成功了。(因为服务器那边接到了连接)在随后循环调用select来判断这个socket是否在read write set里。

第一次select write set通过, read set没通过,这是正常的,说明连接成功了。

随后的select就出现了问题,都是write set read set 同时通过。而recv得到的数据长度是0,事实上也没有给他发数据。 sdk里说这是连接断了,可我获得连接时间依然在递增, <unix网络编程> 里说同时通过这两个set是有错误发生,而我调用getlasterror getpeername都没有错。

我也不知道这是正确现象否,希望哪位高人能指点一二。先谢过


[解决办法]
根据我的经验,当网络连接断开的时候,在上边的设置的接收和发送事件都将触发。但是接收发送的字节数为0。取得网络错误的函数windows下是WSAGetLastError(),UNIX下我不清楚。你检查下。
[解决办法]
貌似不是这里的错误,你可以单步调试下

读书人网 >VC/MFC

热点推荐