PHP的Socket通信之UDP通信实例


Posted in PHP onJuly 02, 2015

本文实例讲述了PHP的Socket通信之UDP通信方法。分享给大家供大家参考。具体如下:

1.创建一简单的UDP服务器

//服务器信息 
$server = 'udp://127.0.0.1:9998'; 
//消息结束符号 
$msg_eof = "\n"; 
$socket = stream_socket_server($server, $errno, $errstr, STREAM_SERVER_BIND); 
if (!$socket) { 
  die("$errstr ($errno)"); 
} 
do { 
  //接收客户端发来的信息 
  $inMsg = stream_socket_recvfrom($socket, 1024, 0, $peer); 
  //服务端打印出相关信息 
  echo "Client : $peer\n"; 
  echo "Receive : {$inMsg}"; 
  //给客户端发送信息 
  $outMsg = substr($inMsg, 0, (strrpos($inMsg, $msg_eof))).' -- '.date("D M j H:i:s Y\r\n"); 
  stream_socket_sendto($socket, $outMsg, 0, $peer); 
} while ($inMsg !== false);

2.简单的客户端

function udpGet($sendMsg = '', $ip = '127.0.0.1', $port = '9998'){ 
  $handle = stream_socket_client("udp://{$ip}:{$port}", $errno, $errstr); 
  if( !$handle ){ 
    die("ERROR: {$errno} - {$errstr}\n"); 
  } 
  fwrite($handle, $sendMsg."\n"); 
  $result = fread($handle, 1024); 
  fclose($handle); 
  return $result; 
} 
$result = udpGet('Hello World'); 
echo $result;

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

PHP 相关文章推荐
层叠菜单的动态生成
Oct 09 PHP
截获网站title标签之家内容的例子
Oct 09 PHP
php SQL防注入代码集合
Apr 25 PHP
PHP读取ACCESS数据到MYSQL的代码
May 11 PHP
如何突破PHP程序员的技术瓶颈分析
Jul 17 PHP
选择PHP作为网站开发语言的原因分享
Jan 03 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
Feb 04 PHP
ThinkPHP3.1新特性之多层MVC的支持
Jun 19 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
Dec 25 PHP
Yii2中如何使用modal弹窗(基本使用)
May 30 PHP
快速解决PHP调用Word组件DCOM权限的问题
Dec 27 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
May 01 PHP
php三元运算符知识汇总
Jul 02 #PHP
PHP中foreach()用法汇总
Jul 02 #PHP
PHP.ini安全配置检测工具pcc简单介绍
Jul 02 #PHP
PHP输出缓冲控制Output Control系列函数详解
Jul 02 #PHP
PHP中的命名空间详细介绍
Jul 02 #PHP
PHP+JS实现大规模数据提交的方法
Jul 02 #PHP
PHP中iconv函数知识汇总
Jul 02 #PHP
You might like
php+dojo 的数据库保存拖动布局的一个方法dojo 这里下载
2007/03/07 PHP
PHP 函数执行效率的小比较
2010/10/17 PHP
PHP自定义大小验证码的方法详解
2013/06/07 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
2014/07/04 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
详解php框架Yaf路由重写
2017/06/20 PHP
phpMyAdmin通过密码漏洞留后门文件
2018/11/20 PHP
$.ajax json数据传递方法
2008/11/19 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
angularJS 如何读写缓冲的方法(推荐)
2016/08/06 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
解决基于 keep-alive 的后台多级路由缓存问题
2020/12/23 Javascript
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
python pandas消除空值和空格以及 Nan数据替换方法
2018/10/30 Python
pycharm配置git(图文教程)
2019/08/16 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
python使用 __init__初始化操作简单示例
2019/09/26 Python
python实现两个字典合并,两个list合并
2019/12/02 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
2020/03/06 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
pymongo insert_many 批量插入的实例
2020/12/05 Python
Python类型转换的魔术方法详解
2020/12/23 Python
AmazeUI的下载配置与Helloworld的实现
2020/08/19 HTML / CSS
美国玩具公司:U.S.Toy
2018/05/19 全球购物
中东奢侈品购物网站:Ounass
2020/09/02 全球购物
求职推荐信
2013/10/28 职场文书
《厄运打不垮的信念》教学反思
2014/04/13 职场文书
高二学生评语大全
2014/04/25 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android