浅析PHP Socket技术

 更新时间:2013年08月02日 09:30:40   投稿:jingxian  
使用并发起一个阻塞式(block)连接,即服务器如果不返回数据流,则一直保持连接状态,一旦有数据流传入,取得内容后就立即断开连接

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多进程简单实例小结

    PHP多进程简单实例小结

    这篇文章主要介绍了PHP多进程,结合简单实例形式总结分析了PHP多进程相关原理、实现方法及操作注意事项,需要的朋友可以参考下
    2019-11-11
  • 基于PHP RSA密文过长加密解密 越过1024的解决方法

    基于PHP RSA密文过长加密解密 越过1024的解决方法

    下面小编就为大家分享一篇基于PHP RSA密文过长加密解密 越过1024的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • PHP array_combine() 函数内置函数

    PHP array_combine() 函数内置函数

    这篇文章主要介绍了PHP array_combine()函数内置函数,array_combine()是PHP中的一个内置函数,用于组合两个数组并通过使用一个数组作为键和另一个数组作为值来创建一个新数组
    2022-09-09
  • php常用表单验证类用法实例

    php常用表单验证类用法实例

    这篇文章主要介绍了php常用表单验证类用法,实例分析了php针对表单元素常用验证技巧,需要的朋友可以参考下
    2015-06-06
  • 编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法

    编译PHP报错configure error Cannot find libmysqlclient under usr的

    这篇文章主要介绍了Linux上编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法,需要的朋友可以参考下
    2014-06-06
  • php组合排序简单实现方法

    php组合排序简单实现方法

    这篇文章主要介绍了php组合排序简单实现方法,涉及php数据结构与数学运算相关操作技巧,需要的朋友可以参考下
    2016-10-10
  • PHP关联数组的10个操作技巧

    PHP关联数组的10个操作技巧

    数组中的元素都有自己的ID,因此可以方便地访问它们;关联数组,它的每个ID 键都关联一个值;这篇文章将介绍10个操作PHP关联数组的技巧,熟练运用能帮助你提高开发效率
    2013-01-01
  • 五个PHP程序员工具

    五个PHP程序员工具

    PHP程序员都应该知道的工具在参与了几个大型PHP项目,写了很多PHP代码以后,我发现很多工具可以提高代码质量,简化发布,使得做为PHP开发人员的生涯变得轻松许多。许多这样的工具可能已经为大家所用。但是,由于一些人甚至没有注意到这些工具的存在,我会从此开始,好了,不说废话,下面是我认为所有PHP程序员应该知道的工具列表。
    2008-05-05
  • 用PHP伪造referer突破网盘禁止外连的代码

    用PHP伪造referer突破网盘禁止外连的代码

    一般的国内网盘为控制流量,都会禁止网盘内的文件外链。点网盘里文件的链接一般都会转到专门的下载页面,必须从这个页面才能下载文件。
    2008-06-06
  • PHP 将dataurl转成图片image方法总结

    PHP 将dataurl转成图片image方法总结

    这篇文章主要介绍了PHP 将dataurl转成图片image方法的相关资料,这里提供了两种方法及实现方式,需要的朋友可以参考下
    2016-10-10

最新评论