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 相关文章推荐
PHP中的类-什么叫类
Nov 20 PHP
yii框架中的Url生产问题小结
Jan 16 PHP
解析dedecms空间迁移步骤详解
May 15 PHP
解析smarty 截取字符串函数 truncate的用法介绍
Jun 20 PHP
php可生成缩略图的文件上传类实例
Dec 17 PHP
php发送html格式文本邮件的方法
Jun 10 PHP
PHP计算日期相差天数实例分析
Feb 23 PHP
ThinkPHP框架分布式数据库连接方法详解
Mar 14 PHP
PHP substr()函数参数解释及用法讲解
Nov 23 PHP
php面向对象程序设计入门教程
Jun 22 PHP
Laravel中正确地返回HTTP状态码方法示例
Sep 10 PHP
php模拟post提交请求调用接口示例解析
Aug 07 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中实现图片的锐化
2006/10/09 PHP
php设计模式 Chain Of Responsibility (职责链模式)
2011/06/26 PHP
phpexcel导入excel数据使用方法实例
2013/12/24 PHP
Nginx下配置codeigniter框架方法
2015/04/07 PHP
PHP微信模板消息操作示例
2017/06/29 PHP
详细解读php的命名空间(二)
2018/02/21 PHP
服务器安全设置的几个注册表设置
2007/07/28 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
js 金额文本框实现代码
2012/02/14 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
50 个 jQuery 插件可将你的网站带到另外一个高度
2016/04/26 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
django模板语法学习之include示例详解
2017/12/17 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
Python selenium根据class定位页面元素的方法
2019/02/26 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
pyqt5 删除layout中的所有widget方法
2019/06/25 Python
python自定义时钟类、定时任务类
2021/02/22 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
Python API自动化框架总结
2019/11/12 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
全网首秀之Pycharm十大实用技巧(推荐)
2020/04/27 Python
Python实现将元组中的元素作为参数传入函数的操作
2020/06/05 Python
HTML5 Notification(桌面提醒)功能使用实例
2014/03/17 HTML / CSS
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
阿迪达斯英国官方网站:adidas英国
2019/08/13 全球购物
团队激励口号
2014/06/06 职场文书
2014年公司工作总结
2014/11/22 职场文书
通知格式
2015/04/27 职场文书
会计主管竞聘书
2015/09/15 职场文书
react 项目中引入图片的几种方式
2021/06/02 Javascript
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server
Python数组变形的几种实现方法
2022/05/30 Python