连接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&plus;&plus; socket 客户端库 socks5 客户端 RudeSocket™ Open Source C&plus;&plus; Socket Library

介绍 一个c++ socket 客户端库 http://www.rudeserver.com/socket/index.html The RudeSocket™ Open Source C++ Soc ...

C&num;用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 &&num;39&semi;sudo&colon; no tty present and no askpass program&&num;39&semi;以及硬盘序列号的读写

在调用system命令读写硬盘序列号的过程中遇到问题,报错如下: sudo: no tty present and no askpass program 发现此问题是由于帐号并没有开启免密码导致的 . ...

1648&colon; &lbrack;Usaco2006 Dec&rsqb;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客户端时的超时问题相关推荐

  1. java nio socket长连接_nio实现Socket长连接和心跳

    前段时间用bio方式,也就是传统io实现了socket的长连接和心跳,总觉着服务端开启多线程管理socket连接的方式过于消耗资源,数据并发的情况下可能会影响到性能,因此就尝试使用nio改进原来的代码 ...

  2. android socket 长连接_TCP/IP,http,socket,长连接,短连接

    点击上方蓝色字体,选择"标星公众号" 优质文章,第一时间送达 上一篇:这300G的Java资料是我师傅当年给我的,免费分享给大家 下一篇:这200G的Java实战资料是我师傅当年教 ...

  3. 【Socket】关于socket长连接的心跳包

    TCP的socket本身就是长连接的,那么为什么还要心跳包呢? 在smack里有个30s发送一个空消息的线程,同样关于心跳包(keepalive) 据网络搜索到的资料解释如下 内网机器如果不主动向外发 ...

  4. 关于socket长连接的心跳包

    出于最近对im研究的兴趣,看到smack里有个30s发送一个空消息的线程,了解了下关于心跳包,keepalive的知识. TCP的socket本身就是长连接的,那么为什么还要心跳包呢? 搜索到的资料解 ...

  5. Socket长连接和短连接

    1 概念 Socket:socket实际上是对TCP/IP进行的封装,我们可以使用socket套接字通过socket来传输.首先我们需要明白的一个概念就是通道,简单地说通道就是两个对端可以随时传输数据 ...

  6. Java实现SSL Socket长连接

    一.单向认证 1.生成服务端密钥(配置了jdk的环境变量即可用keytool命令) 命令:keytool -genkey -keystore server_ks.jks -storepass serv ...

  7. 网络编程懒人入门(八):手把手教你写基于TCP的Socket长连接

    转自即时通讯网:http://www.52im.net/ 本文原作者:"水晶虾饺",原文由"玉刚说"写作平台提供写作赞助,原文版权归"玉刚说" ...

  8. socket 获取回传信息_基于netty框架的socket长连接负载均衡解决方案 oswl

    前言 物联网如今是一个大的趋势,但是概念还比较新颖.大家对这一块的技术积累也比较匮乏,借此前段时间摩拜单车出现了大规模瘫痪的现象.我们今天来讨论一下物联网项目的开发方式. 关于tcp/ip 相关的知识 ...

  9. android socket 长连接_php socket如何实现长连接

    长连接是什么? 朋友们应该都见过很多在线聊天工具和网页在线聊天的工具.学校内有一种熟悉的功能,如果有人回复你了,网站会马上出现提示,此时你并没有刷新页面:Gmail也有此功能,如果邮箱里收到了新的邮件 ...

  10. 基于netty框架的socket长连接负载均衡解决方案

    socket通讯的单机瓶颈 物联网的项目socket使用方式有两种: 短连接的socket请求 维持socket长连接的请求 对于socket短链接来说就好比是http请求,请求服务器,服务器返回数据 ...

最新文章

  1. js获取当前页面的URL信息
  2. Selenium3自动化测试——5. 鼠标悬停操作
  3. oracle替换表merge,sql – Oracle – 如何使用merge根据其他表和列中的值更新列
  4. 编译原理预测分析法c语言,编译原理预测分析法C语言的实验报告.doc
  5. Ant Design Pro 登录超时处理
  6. C++笔记-使用std::funcional代替函数指针
  7. django的models常用字段、属性
  8. 深度学习《Photo Editing》
  9. mysql replace substring 字符串截取处理
  10. 利用 Apache 为个人用户创建 web 站点及其报错处理
  11. iPhone8用的全面屏是什么屏幕?
  12. java安卓开发异步任务_java – 如何从android中的任何异步操作中获...
  13. 一个简单的dos命令实现无限弹窗,卡死电脑
  14. 超标量处理器设计 姚永斌 第2章 Cache 摘录
  15. 最好用的 7 款 Vue admin 后台管理系统测评
  16. PHP架构师必备技术视频合集
  17. java限制输入字符长度_input限制输入长度
  18. 格式工厂 vtt字幕 加入视频
  19. 如何建立一个属于自己的网站(小白教程)
  20. 扫码反馈,“码”上回复:二维码在业主意见反馈中的应用

热门文章

  1. 车灯E-mark证书有效期是多长时间?
  2. 使用while循环创建计数器
  3. 智能优化算法:冠状病毒群体免疫优化算法 -附代码
  4. 无胁科技-TVD每日漏洞情报-2022-10-31
  5. leetcode-1319:连通网络的操作次数
  6. WPF UI框架界面开发教程(十二)
  7. 刚刚!微信官宣100w个限量版虎年红包封面,超好看!速度撸!
  8. 域名升级访问中拿笔记好_有道云笔记被微信屏蔽,微信:部分链接内容有色情问题...
  9. 本科计算机专业软考证书,我有1本软考证书,但不知有什么用
  10. MySQL 一个字段多个id查询