请教一个非阻塞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下我不清楚。你检查下。
[解决办法]
貌似不是这里的错误,你可以单步调试下