浅析PHP Socket技术


Posted in PHP onAugust 02, 2013

phpsocketSocket位于TCP/IP协议的传输控制协议,提供客户-服务器模式的异步通信,即客户向服务器发出服务请求,服务器接收到请求后,提供相应的反馈或服务!我练习了一个最基本的例子:

使用并发起一个阻塞式(block)连接,即服务器如果不返回数据流,则一直保持连接状态,一旦有数据流传入,取得内容后就立即断开连接。代码如下:

<?php
$host = www.sohu.com; //这个地址随便,用新浪的也行,主要是测试用,哪个无所谓
$page = "/index.html";
$port = 80;
$request = "GET $page HTTP/1.1\r\n";
$request .= "Host: $host\r\n";
//$request .= "Referer:$host\r\n";
$request .= "Connection: close\r\n\r\n";
//允许连接的超时时间为1.5秒
$connectionTimeout = 1.5;
//允许远程服务器2秒钟内完成回应
$responseTimeout = 2;
//建立一个socket连接
$fp = fsockopen($host, $port, $errno, $errstr, $connectionTimeout);
if (!$fp) {
    throw new Exception("Connection to $hostfailed:$errstr");
} else {
    stream_set_blocking($fp, true);
    stream_set_timeout($fp, $responseTimeout);
}
//发送请求字符串
fwrite($fp, $request);
//取得返回的数据流内容
$content = stream_get_contents($fp);
echo $content;
$meta = stream_get_meta_data($fp);
if ($meta['timed_out']) {
    throw new Exception("Responsefrom web services server timed out.");
}
//关闭Socket连接
fclose($fp);
?>
PHP 相关文章推荐
多重?l件?合查?(一)
Oct 09 PHP
用文本文件实现的动态实时发布新闻的程序
Oct 09 PHP
smarty实例教程
Nov 19 PHP
PHP中HTTP方式下的Gzip压缩传输方法举偶
Feb 15 PHP
谈PHP生成静态页面分析 模板+缓存+写文件
Aug 17 PHP
php 显示指定路径下的图片
Oct 29 PHP
PHP获取MAC地址的函数代码
Sep 11 PHP
安装apache2.2.22配置php5.4(具体操作步骤)
Jun 26 PHP
使用php实现截取指定长度
Aug 06 PHP
如何使用php输出时间格式
Aug 31 PHP
PHP异常Parse error: syntax error, unexpected T_VAR错误解决方法
May 06 PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 PHP
php中如何防止表单的重复提交
Aug 02 #PHP
浅析51个PHP处理字符串的函数
Aug 02 #PHP
php中的常用魔术方法总结
Aug 02 #PHP
深入解析Session是否必须依赖Cookie
Aug 02 #PHP
php中用date函数获取当前时间有误的解决办法
Aug 02 #PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
Aug 01 #PHP
如何使用PHP获取指定日期所在月的开始日期与结束日期
Aug 01 #PHP
You might like
php zend解密软件绿色版测试可用
2008/04/14 PHP
php 静态化实现代码
2009/03/20 PHP
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
javaScript - 如何引入js代码
2021/03/09 Javascript
可自己添加html的伪弹出框实现代码
2013/09/08 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
21个值得收藏的Javascript技巧
2014/02/04 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
javascript函数特点实例分析
2015/05/14 Javascript
js弹出对话框方式小结
2015/11/17 Javascript
基于js中的原型、继承的一些想法
2016/08/10 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
详解vue 命名视图
2019/08/14 Javascript
vue实现全匹配搜索列表内容
2019/09/26 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
vue循环中点击选中再点击取消(单选)的实现
2020/09/10 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
2020/10/13 Javascript
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
在centos7中分布式部署pyspider
2017/05/03 Python
python中数字是否为可变类型
2020/07/08 Python
Python faker生成器生成虚拟数据代码实例
2020/07/20 Python
python 模拟登陆github的示例
2020/12/04 Python
CSS3实现水平居中、垂直居中、水平垂直居中的实例代码
2020/02/27 HTML / CSS
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
建筑施工实习自我鉴定
2013/09/19 职场文书
手机被没收检讨书
2014/02/22 职场文书
法人委托书范本
2014/04/04 职场文书
竞选大队委员演讲稿
2014/04/28 职场文书
法定授权委托证明书
2014/09/27 职场文书
2014年护理工作总结范文
2014/11/14 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书
CSS3 天气图标动画效果
2021/04/06 HTML / CSS
JavaScript实现简单图片切换
2021/04/29 Javascript