[PHP]socket的连接超时 与 读取/写入超时
socket处理时有两种超时 , 分为连接超时 和 读取/写入数据超时
1. stream_socket_client 函数中的超时时间是连接超时 , 默认是php.ini中的default_socket_timeout配置项
2. stream_set_timeout() 函数设置的是 读取/写入数据超时
3. default_socket_timeout配置项也控制file_get_contents的超时时间
PHP文档中对该函数的解释:
stream_socket_client ($remote_socket [,&$errno [,&$errstr [,$timeout = ini_get("default_socket_timeout") [,$flags = STREAM_CLIENT_CONNECT [ $context ]]]]] )
1.remote_socket 要连接到的套接字的地址。
对于Internet域套接字(AF_INET)(如TCP和UDP),remote_socket参数的目标部分应包含主机名或IP地址,后跟冒号和端口号。对于Unix域套接字,目标部分应指向文件系统上的套接字文件。
注意:默认情况下,流将以阻塞模式打开。您可以使用stream_set_blocking($stream,1)将其切换到非阻塞模式。如果 mode 为0,资源流将会被转换为非阻塞模式;如果是1,资源流将会被转换为阻塞模式。 该参数的设置将会影响到像 fgets() 和 fread() 这样的函数从资源流里读取数据。 在非阻塞模式下,调用 fgets() 总是会立即返回;而在阻塞模式下,将会一直等到从资源流里面获取到数据才能返回。
2.errno 如果连接失败,将设置为系统级错误号。
3.errstr 如果连接失败,将设置为系统级错误消息。
4.timeout connect()系统调用应该超时之前的秒数。 默认是php.ini中的default_socket_timeout配置项
注意:此参数仅在不进行异步连接尝试时适用。
注意: 要设置通过套接字读取/写入数据的超时,请使用stream_set_timeout(),因为仅在连接套接字时才应用超时。
5.flags 位掩码字段,可以设置为连接标志的任意组合。目前,连接标志的选择仅限于STREAM_CLIENT_CONNECT(默认值),STREAM_CLIENT_ASYNC_CONNECT和STREAM_CLIENT_PERSISTENT。
6.context 使用stream_context_create()创建的有效上下文资源。
[PHP]socket的连接超时 与 读取/写入超时的更多相关文章
- (五)HttpClient 连接超时及读取超时
第一节: HttpClient 连接超时及读取超时 HttpClient连接超时及读取超时 httpClient在执行具体http请求时候 有一个连接的时间和读取内容的时间: HttpClient连接 ...
- C# Socket.Connect连接请求超时机制
介绍 您可能注意到了,.Net的System.Net.Sockets.TcpClient和System.Net.Sockets.Socket都没有直接为Connect/BeginConnect提供超时 ...
- HttpClient连接超时及读取超时
HttpClient连接超时及读取超时 httpClient在执行具体http请求时候 有一个连接的时间和读取内容的时间: HttpClient连接时间 所谓连接的时候 是HttpClient发送请求 ...
- 网络编程懒人入门(八):手把手教你写基于TCP的Socket长连接
本文原作者:“水晶虾饺”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.引言 好多小白初次接触即时通讯(比如:IM或者消息推送应用)时,总是不 ...
- 深度分析 [go的HttpClient读取Body超时]
故障现场 本人负责的主备集群,发出的 HttpClient 请求有 30%概率超时, 报context deadline exceeded (Client.Timeout or context can ...
- 【Socket】关于socket长连接的心跳包
TCP的socket本身就是长连接的,那么为什么还要心跳包呢? 在smack里有个30s发送一个空消息的线程,同样关于心跳包(keepalive) 据网络搜索到的资料解释如下 内网机器如果不主动向外发 ...
- Socket长连接和短连接的区别
https://blog.csdn.net/jasonjwl/article/details/52085264 短连接 连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进 ...
- socket长连接和短链接区别
短连接 连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束后就中断连接.短连接是指SOCKET连接后发送后接收完数据后马上断 ...
- socket长连接 GCDAsyncSocket
基础: http://www.2cto.com/kf/201609/546974.html 转自: http://blog.csdn.net/u013282507/article/details/52 ...
随机推荐
- JWPlayer快速入门指南(中文)
将JW Player嵌入到网页中非常的简单,只需要进行如下3个步骤: 1.解压mediaplayer-viral.zip文件,将jwplayer.js和player.swf文件拷贝到工程中: 2.在页 ...
- bzoj4331: JSOI2012 越狱老虎桥
Description 这里,是美丽的南京:这里,是秀美的进香河:这里是安逸的老虎桥. 如果说进香河的美,美在其秀美的风光,倒不如说是美在了那惬意的南京古典小巷式生活.如果说进香河的迷人,在其淳朴的 ...
- 【ZZ】国外大型网站使用到编程语言 | 菜鸟教程
http://www.runoob.com/w3cnote/rogramming-languages-used-in-most-popular-websites.html 下图展示了大型网站使用到的后 ...
- [转]Web 调试工具之 Advanced REST client
原文:http://bbs.itcast.cn/forum.php?mod=viewthread&tid=85654 安装方式: 3.1. 如果你能FQ访问谷歌商店,那么就简单了 在这里直接安 ...
- c#中变量的作用域
C#中的作用域和javascript中的作用域还是有区别的.呵呵 class Person { /* *确定C#变量作用域的2个规则. 1.类的字段所处的作用域等同于该字段所属类所在的作用域; * 2 ...
- Maven的依赖机制介绍
以下内容引用自https://ayayui.gitbooks.io/tutorialspoint-maven/content/book/maven_manage_dependencies.html: ...
- Vue基础知识之过滤器(四)
过滤器 1.过滤器的用法,用 '|' 分割表达式和过滤器. 例如:{{ msg | filter}} {{msg | filter(a)}} a就标识filter的一个参数. 用两个过滤器:{{msg ...
- oracle9i-11.2安装包及补丁包下载链接
ORACLE 9i Oracle9i Database Release 2 Enterprise/Standard/Personal Edition for Windows NT/2000/XPhtt ...
- js 各种距离
网页可见区域宽 document.body.clientWidth 网页可见区域高 document.body.clientHeight 网页可见区域宽(包括边线的宽) document.b ...
- C# JSON 序列化
1.JavaScriptSerializer System.Web.Extensions.dll System.Web.Script.Serialization命名空间 Serialize Deser ...