Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets 带有RCVTIMEO的setsockopt()在windows mobile5中不起作用_Sockets_Tcp_Windows Mobile - Fatal编程技术网

Sockets 带有RCVTIMEO的setsockopt()在windows mobile5中不起作用

Sockets 带有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

我试图通过使用setsockopt()API,将so_rcvtimeo选项设置为5秒,使套接字描述符上的recieve()调用超时。但当服务器未接收到数据时,我的recieve()调用在5秒后没有超时

我可以知道在windows mobile 5中是否有任何设置可以使其正常工作,或者是否有其他方法可以在windows mobile 5/pocket pc中实现这一点

感谢和问候

在备注部分明确说明:

下表显示了setsockopt不支持的BSD选项

所以_ACCEPTCONN
所以_RCVLOWAT

因此,如果套接字是使用WSASocket函数创建的,那么dwFlags参数必须设置WSA_FLAG_OVERLAPPED属性,超时才能正常工作。否则超时将永远不会生效。另外,请参见Eric,socket是使用普通socket()函数创建的。您指定的论坛表明windows mobile 5中未实现rcvtimeout。感谢您的澄清。但是,有没有办法在不使用多线程编程的情况下实现此接收超时??我得到了调用的顺序处理不是没有多线程,不是。你仍然可以通过让线程发出调用方等待的事件信号来假装同步行为。