php 客户端socket长连接超时,[PHP] socket客户端时的超时问题
连接socket分为连接超时和读取超时
$sock=stream_socket_client("www.google.com:80", $errno,$errstr,2); 那个数字是连接超时 ,比如连接google , 2秒就返回错误 , 这样就不会一直等在那了
stream_set_timeout($sock,5); 这个数字是读取数据的超时
stream_get_meta_data 可以在socket中返回元数据
比如下面的测试,因为http协议连接完就会被服务端断掉,所以没办法使用长连接一直传输数据,需要在循环中不停的new对象创建连接
for($i=0;$i<1000;$i++){
$sock=stream_socket_client("www.baidu.com:80", $errno,$errstr,2);
stream_set_timeout($sock,5);
$meta=stream_get_meta_data($sock);
var_dump("start",$meta);
fwrite($sock, "GET / HTTP/1.0\r\n\r\n");
$buf = '';
while (true) {
$s = fread($sock,1024);
if (!isset($s[0])) {
break;
}
$buf .= $s;
}
$meta=stream_get_meta_data($sock);
var_dump("end",$meta,$sock);
}
string(5) "start"
array(7) {
["stream_type"]=>
string(14) "tcp_socket/ssl"
["mode"]=>
string(2) "r+"
["unread_bytes"]=>
int(0)
["seekable"]=>
bool(false)
["timed_out"]=>
bool(false)
["blocked"]=>
bool(true)
["eof"]=>
bool(false)
}
string(3) "end"
array(7) {
["stream_type"]=>
string(14) "tcp_socket/ssl"
["mode"]=>
string(2) "r+"
["unread_bytes"]=>
int(0)
["seekable"]=>
bool(false)
["timed_out"]=>
bool(false)
["blocked"]=>
bool(true)
["eof"]=>
bool(true)
}
resource(175) of type (stream)
其中的timed_out就是读取数据的超时,false为读取没超时
eof为是否已经到了文件尾,如果是长连接这里是不会到达文件尾的,http协议这种短连接会读完后连接就结束了
Python socket 客户端和服务器端
connection, address = socket.accept() 调 用accept方法时,socket会时入“waiting”状态.客户请求连接时,方法建立连接并返回服务器.accept方 ...
【RL-TCPnet网络教程】第20章 RL-TCPnet之BSD Socket客户端
第20章 RL-TCPnet之BSD Socket客户端 本章节为大家讲解RL-TCPnet的BSD Socket,学习本章节前,务必要优先学习第18章的Socket基础知识.有了这些基础知 ...
基于Socket客户端局域网或广域网内共享同一短信猫收发短信的开发解决方案
可使同一网络(局域网或广域网)内众多客户端,共享一个短信猫设备短信服务器进行短信收发,短信服务器具备对客户端的管理功能. 下面是某市建设银行采用本短信二次开发平台时实施的系统方案图: 在该方案中,考虑 ...
HTTP 客户端接收数据超时
本文使用两种方式测试HTTP 客户端读数据超时的情况,一种是直接使用golang自带的http库,另一种是使用martini web框架. 1. 测试1--直接使用http库 1.1.启动server ...
JAVA Socket 连接时长
其实关于这个问题可能用到的人不会很多,不过我在这里还是说说. 正常很多人写socket通信时,都会直接通过new socket(IP,PORT)直接去链接服务器.其实这种做法也没有错误,但是若当服务器 ...
java版简易socket客户端
android项目需要使用到心跳, 于是编写了一个简易的socket客户端程序 主要功能是给服务端发送心跳包,保持在线状态 没有使用框架,这样避免了需要引入包,直接使用的阻塞Socket通信. 主要逻 ...
c++ socket 客户端库 socks5 客户端 RudeSocket™ Open Source C++ Socket Library
介绍 一个c++ socket 客户端库 http://www.rudeserver.com/socket/index.html The RudeSocket™ Open Source C++ Soc ...
C#用WebClient下载File时操作超时的问题
原文:C#用WebClient下载File时操作超时的问题 今天很SB,被这个问题卡住了.那段代码也是网上找的.结果发现只能下载一个文件,第二次下载的时候就会出现“操作超时”的问题. 这个是原代码: ...
随机推荐
phpstorm设置
phpstorm版本为10.0.3,设置自动换行如下: 快捷方式: 打开新的文件:ctrl+shift+N 格式化:ctrl+alt+L 全局搜索:ctrl+shift+F 更换默认快捷键如下,其实右 ...
python 培训之 Python 数据类型
0. 变量 计算机某块内存的标签,存储数据的容器的标签,可被覆盖. a = "" a = "a1bcd" a=a+"ddd&quo ...
php随笔(一)
之前的开发一直用的都是Thinkphp框架,对原生的php很不了解,近日打算把以前的项目拿一个出来用原生php再重写一次,顺便再把TP框架拆开好好分析分析. 之前的android开发虽说对面向对象的思 ...
关于php的一些小知识
浏览目录: 一.PHP的背景和优势: 二.PHP原理简介: 三.PHP运行环境配置: 四.编写简单的PHP代码以及测试. 一.PHP的背景和优势 1.1 什么是PHP? PHP是能让你生成动态网页 ...
NTP服务器地址及IP
yum install ntp */20 * * * * /usr/sbin/ntpdate 61.172.254.29 210.72.145.44 (国家授时中心服务器IP地址)133.100.11 ...
How to fix &#39;sudo: no tty present and no askpass program&#39;以及硬盘序列号的读写
在调用system命令读写硬盘序列号的过程中遇到问题,报错如下: sudo: no tty present and no askpass program 发现此问题是由于帐号并没有开启免密码导致的 . ...
1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐
1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 432 Solved: 270[ ...
Leetcode 4——Partition List
Problems: Given a linked list and a value x, partition it such that all nodes less than x come befor ...
java学习(一)
目录 java简介 java基础 基本语法 java标识符 java变量 变量类型 变量声明 java常量 Java 基本数据类型 内置数据类型 引用数据类型 Java类型转换 java注释 操作符 ...
php 客户端socket长连接超时,[PHP] socket客户端时的超时问题相关推荐
- java nio socket长连接_nio实现Socket长连接和心跳
前段时间用bio方式,也就是传统io实现了socket的长连接和心跳,总觉着服务端开启多线程管理socket连接的方式过于消耗资源,数据并发的情况下可能会影响到性能,因此就尝试使用nio改进原来的代码 ...
- android socket 长连接_TCP/IP,http,socket,长连接,短连接
点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 上一篇:这300G的Java资料是我师傅当年给我的,免费分享给大家 下一篇:这200G的Java实战资料是我师傅当年教 ...
- 【Socket】关于socket长连接的心跳包
TCP的socket本身就是长连接的,那么为什么还要心跳包呢? 在smack里有个30s发送一个空消息的线程,同样关于心跳包(keepalive) 据网络搜索到的资料解释如下 内网机器如果不主动向外发 ...
- 关于socket长连接的心跳包
出于最近对im研究的兴趣,看到smack里有个30s发送一个空消息的线程,了解了下关于心跳包,keepalive的知识. TCP的socket本身就是长连接的,那么为什么还要心跳包呢? 搜索到的资料解 ...
- Socket长连接和短连接
1 概念 Socket:socket实际上是对TCP/IP进行的封装,我们可以使用socket套接字通过socket来传输.首先我们需要明白的一个概念就是通道,简单地说通道就是两个对端可以随时传输数据 ...
- Java实现SSL Socket长连接
一.单向认证 1.生成服务端密钥(配置了jdk的环境变量即可用keytool命令) 命令:keytool -genkey -keystore server_ks.jks -storepass serv ...
- 网络编程懒人入门(八):手把手教你写基于TCP的Socket长连接
转自即时通讯网:http://www.52im.net/ 本文原作者:"水晶虾饺",原文由"玉刚说"写作平台提供写作赞助,原文版权归"玉刚说" ...
- socket 获取回传信息_基于netty框架的socket长连接负载均衡解决方案 oswl
前言 物联网如今是一个大的趋势,但是概念还比较新颖.大家对这一块的技术积累也比较匮乏,借此前段时间摩拜单车出现了大规模瘫痪的现象.我们今天来讨论一下物联网项目的开发方式. 关于tcp/ip 相关的知识 ...
- android socket 长连接_php socket如何实现长连接
长连接是什么? 朋友们应该都见过很多在线聊天工具和网页在线聊天的工具.学校内有一种熟悉的功能,如果有人回复你了,网站会马上出现提示,此时你并没有刷新页面:Gmail也有此功能,如果邮箱里收到了新的邮件 ...
- 基于netty框架的socket长连接负载均衡解决方案
socket通讯的单机瓶颈 物联网的项目socket使用方式有两种: 短连接的socket请求 维持socket长连接的请求 对于socket短链接来说就好比是http请求,请求服务器,服务器返回数据 ...
最新文章
- js获取当前页面的URL信息
- Selenium3自动化测试——5. 鼠标悬停操作
- oracle替换表merge,sql – Oracle – 如何使用merge根据其他表和列中的值更新列
- 编译原理预测分析法c语言,编译原理预测分析法C语言的实验报告.doc
- Ant Design Pro 登录超时处理
- C++笔记-使用std::funcional代替函数指针
- django的models常用字段、属性
- 深度学习《Photo Editing》
- mysql replace substring 字符串截取处理
- 利用 Apache 为个人用户创建 web 站点及其报错处理
- iPhone8用的全面屏是什么屏幕?
- java安卓开发异步任务_java – 如何从android中的任何异步操作中获...
- 一个简单的dos命令实现无限弹窗,卡死电脑
- 超标量处理器设计 姚永斌 第2章 Cache 摘录
- 最好用的 7 款 Vue admin 后台管理系统测评
- PHP架构师必备技术视频合集
- java限制输入字符长度_input限制输入长度
- 格式工厂 vtt字幕 加入视频
- 如何建立一个属于自己的网站(小白教程)
- 扫码反馈,“码”上回复:二维码在业主意见反馈中的应用