Sockets 带有RCVTIMEO的setsockopt()在windows mobile5中不起作用
我试图通过使用setsockopt()API,将so_rcvtimeo选项设置为5秒,使套接字描述符上的recieve()调用超时。但当服务器未接收到数据时,我的recieve()调用在5秒后没有超时 我可以知道在windows mobile 5中是否有任何设置可以使其正常工作,或者是否有其他方法可以在windows mobile 5/pocket pc中实现这一点 感谢和问候在备注部分明确说明: 下表显示了setsockopt不支持的BSD选项 所以_ACCEPTCONNSockets 带有RCVTIMEO的setsockopt()在windows mobile5中不起作用,sockets,tcp,windows-mobile,Sockets,Tcp,Windows Mobile,我试图通过使用setsockopt()API,将so_rcvtimeo选项设置为5秒,使套接字描述符上的recieve()调用超时。但当服务器未接收到数据时,我的recieve()调用在5秒后没有超时 我可以知道在windows mobile 5中是否有任何设置可以使其正常工作,或者是否有其他方法可以在windows mobile 5/pocket pc中实现这一点 感谢和问候在备注部分明确说明: 下表显示了setsockopt不支持的BSD选项 所以_ACCEPTCONN 所以_RCVLOWA
所以_RCVLOWAT
因此,如果套接字是使用WSASocket函数创建的,那么dwFlags参数必须设置WSA_FLAG_OVERLAPPED属性,超时才能正常工作。否则超时将永远不会生效。另外,请参见Eric,socket是使用普通socket()函数创建的。您指定的论坛表明windows mobile 5中未实现rcvtimeout。感谢您的澄清。但是,有没有办法在不使用多线程编程的情况下实现此接收超时??我得到了调用的顺序处理不是没有多线程,不是。你仍然可以通过让线程发出调用方等待的事件信号来假装同步行为。