php socket通信(tcp/udp)实例分析


Posted in PHP onFebruary 14, 2016

本文实例讲述了php socket通信(tcp/udp)方法。分享给大家供大家参考,具体如下:

注意

1.在socket_bind的时候ip地址不能真回环地址如127.0.0.1
2.server.php后台跑起来的时候nohup php server.php > /var/tmp/a.log 2>&1 &

一: udp 方式

1) server.php

<?php
//error_reporting( E_ALL );
set_time_limit( 0 );
ob_implicit_flush();
$socket = socket_create( AF_INET, SOCK_DGRAM, SOL_UDP );
if ( $socket === false ) {
  echo "socket_create() failed:reason:" . socket_strerror( socket_last_error() ) . "\n";
}
$ok = socket_bind( $socket, '202.85.218.133', 11109 );
if ( $ok === false ) {
  echo "socket_bind() failed:reason:" . socket_strerror( socket_last_error( $socket ) );
}
while ( true ) {
  $from = "";
  $port = 0;
  socket_recvfrom( $socket, $buf,1024, 0, $from, $port );
  echo $buf;
  usleep( 1000 );
}
?>

2) client.php

<?php
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
$msg = 'hello';
$len = strlen($msg);
socket_sendto($sock, $msg, $len, 0, '202.85.218.133', 11109);
socket_close($sock);
?>

二: TCP 方式

1)server.php

<?php
//error_reporting( E_ALL );
set_time_limit( 0 );
ob_implicit_flush();
$socket = socket_create( AF_INET, SOCK_STREAM, SOL_TCP );
socket_bind( $socket, '192.168.2.143', 11109 );
socket_listen($socket);
$acpt=socket_accept($socket);
echo "Acpt!\n";
while ( $acpt ) {
  $words=fgets(STDIN);
  socket_write($acpt,$words);
  $hear=socket_read($acpt,1024);
  echo $hear;
  if("bye\r\n"==$hear){
    socket_shutdown($acpt);
    break;
  }
  usleep( 1000 );
}
socket_close($socket)
?>

2) client.php

<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$con=socket_connect($socket,'192.168.2.143',11109);
if(!$con){socket_close($socket);exit;}
echo "Link\n";
while($con){
    $hear=socket_read($socket,1024);
    echo $hear;
    $words=fgets(STDIN);
    socket_write($socket,$words);
    if($words=="bye\r\n"){break;}
}
socket_shutdown($socket);
socket_close($sock);
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
在PHP3中实现SESSION的功能(三)
Oct 09 PHP
一个分页的论坛
Oct 09 PHP
php环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
Nov 17 PHP
Optimizer与Debugger兼容性问题的解决方法
Dec 01 PHP
php代码收集表单内容并写入文件的代码
Jan 29 PHP
PHP之正则表达式捕获组与非捕获组(详解)
Jul 29 PHP
使用PHP实现下载CSS文件中的图片
Dec 06 PHP
PHP实现表单提交时去除斜杠的方法
Dec 26 PHP
PHP封装函数实现生成随机的字符串验证码
Jan 24 PHP
thinkphp5框架实现的自定义扩展类操作示例
May 16 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
Sep 29 PHP
PHP pthreads v3下worker和pool的使用方法示例
Feb 21 PHP
PHP检测用户是否关闭浏览器的方法
Feb 14 #PHP
php中的常用魔术方法汇总
Feb 14 #PHP
详解php魔术方法(Magic methods)的使用方法
Feb 14 #PHP
PHP浮点比较大小的方法
Feb 14 #PHP
PHP魔术方法使用方法汇总
Feb 14 #PHP
PHP函数超时处理方法
Feb 14 #PHP
PHP使用file_get_content设置头信息的方法
Feb 14 #PHP
You might like
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
2013/07/01 PHP
PHP扩展开发入门教程
2015/02/26 PHP
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
多种方式实现JS调用后台方法进行数据交互
2013/08/20 Javascript
JavaScript AJAX之惰性载入函数
2014/08/27 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
详解JavaScript中的异常处理方法
2015/06/16 Javascript
使用jquery实现仿百度自动补全特效
2015/07/23 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
JS实现仿微博可关闭弹出层效果
2015/09/21 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
[原创]JavaScript语法高亮插件highlight.js用法详解【附highlight.js本站下载】
2016/11/01 Javascript
bootstrap PrintThis打印插件使用详解
2017/02/20 Javascript
Vue2.0父组件与子组件之间的事件发射与接收实例代码
2017/09/19 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
2018/08/14 Javascript
Vuejs开发环境搭建及热更新【推荐】
2018/09/07 Javascript
el-select 下拉框多选实现全选的实现
2019/08/02 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
2020/10/29 Javascript
[01:07]2015国际邀请赛 中国区预选赛精彩回顾
2015/06/15 DOTA
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
django的登录注册系统的示例代码
2018/05/14 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
python之super的使用小结
2018/08/13 Python
Django如何开发简单的查询接口详解
2019/05/17 Python
python3.6环境安装+pip环境配置教程图文详解
2019/06/20 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
python调用webservice接口的实现
2019/07/12 Python
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
俄罗斯购买自行车网站:Vamvelosiped
2021/01/29 全球购物
实习护士自我鉴定
2013/10/13 职场文书
大学竞选班干部演讲稿
2014/08/21 职场文书
建议书格式
2015/02/04 职场文书