当前位置:  开发笔记 > 编程语言 > 正文

在socket_read上设置超时

如何解决《在socket_read上设置超时》经验,为你挑选了2个好方法。

我想知道如何在socket_read通话中设置超时?它第一次调用时socket_read,它等待直到发送数据,如果在5秒内没有发送数据,我想关闭连接.任何帮助?我已经尝试SO_RCVTIMEO过没有运气了.

我正在创建一个套接字socket_create()并用它来监听连接,然后在连接时我会监听数据,然后用它做一些事情.超时命中时,我想运行socket_shutdown()然后socket_close().



1> Nick..:

这设置了套接字的5秒超时.

socket_set_option($socket,SOL_SOCKET, SO_RCVTIMEO, array("sec"=>5, "usec"=>0));


有趣的观察:如果您使用PHP_NORMAL_READ而不是PHP_BINARY_READ(默认值)作为socket_read()的第三个参数,它将忽略使用socket_set_option()设置的超时,并将无限期地阻塞,直到发送内容...(使用PHP 5.5.9观察) )

2> OIS..:

您是否尝试过socket_set_option与SO_RCVTIMEO

输入操作的超时值.

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有