php socket 获取ip,PHP_浅析PHP Socket技术,phpsocketSocket位于TCP/IP协议的传 - phpStudy

浅析PHP Socket技术

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

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

$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的curl开启问题探讨

MySQL中REGEXP正则表达式使用大全

node.js中的fs.lstat方法使用说明

php简单创建zip压缩文件的方法

C#统计字符串里中文汉字个数的方法

JavaScript获取客户端IP的方法(新方法)

win10鼠标箭头怎么设置?win10修改鼠标箭头图案的方法

详解iOS开发中UITableview cell 顶部空白的多种设置方法

asp.net log4net的使用方法

smarty实现多级分类的方法

js采用map取到id集合组并且实现点击一行选中一行

Win7计算机窗口右侧多出U盘内容显示的关闭方法

php魔术变量用法实例详解

Oracle undo_management参数不一致错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值