PHP基于socket实现的简单客户端和服务端通讯功能示例


Posted in PHP onJuly 10, 2017

本文实例讲述了PHP基于socket实现的简单客户端和服务端通讯功能。分享给大家供大家参考,具体如下:

服务器端:

<?php
  set_time_limit(0);
  $host="localhost";
  $port=1001;
  //创建一个连接
  $socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)or die("cannot create socket\n");
  //绑定socket到端口
  $result=socket_bind($socket,$host,$port) or die("cannot bind port to socket\n");
  //开始监听这个端口
  $result=socket_listen($socket,4) or die("could not set up socket listen\n");
  //接受连接,另一个socket来处理通信
  $msgsock=socket_accept($socket) or die("cannot accept incoming connection\n");
  if($msgsock){
    echo date("Y-m-d H:i:s D a");
  }
  //读取客户端发送过来的信息
  $input=socket_read($msgsock,1024) or die("cannot read input\n");
  $input=trim($input);
  $output=strrev($input)."顺序反过来了吧\n";
  //对接收到的信息进行处理,然后返回到客户端
  socket_write($msgsock,$output,strlen($output)) or die("cannot write");
  //关闭socket连接
  socket_close($msgsock);
  socket_close($socket);
?>

客户端:

<?php
  set_time_limit(0);
  $host="localhost";
  $port=1001;
  //创建一个socket
  $socket=socket_create(AF_INET,SOCK_STREAM,SOL_TCP)or die("cannot create socket\n");
  $conn=socket_connect($socket,$host,$port) or die("cannot connect server\n");
  if($conn){echo "client connect ok!";}
  socket_write($socket,"hello world!") or die("cannot write data\n");
  $buffer=socket_read($socket,1024,PHP_NORMAL_READ);
  if($buffer){
    echo "response was:".$buffer."\n";
  }
  socket_close($socket);
?>

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

PHP 相关文章推荐
php win下Socket方式发邮件类
Aug 21 PHP
网页游戏开发入门教程二(游戏模式+系统)
Nov 02 PHP
PHP setTime 设置当前时间的代码
Aug 27 PHP
php解决抢购秒杀抽奖等大流量并发入库导致的库存负数的问题
Jun 19 PHP
smarty模板判断数组为空的方法
Jun 10 PHP
Yii2中SqlDataProvider用法示例
Sep 22 PHP
PHP实现的简单适配器模式示例
Jun 22 PHP
PHP封装的完整分页类示例
Aug 21 PHP
PHP实现微信小程序用户授权的工具类示例
Mar 05 PHP
详解php中curl返回false的解决办法
Mar 18 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
Aug 30 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 PHP
PHP正则匹配操作简单示例【preg_match_all应用】
Jul 10 #PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 #PHP
form自动提交实例讲解
Jul 10 #PHP
利用php的ob缓存机制实现页面静态化方法
Jul 09 #PHP
解决安装WampServer时提示缺少msvcr110.dll文件的问题
Jul 09 #PHP
详解php中serialize()和unserialize()函数
Jul 08 #PHP
PC端微信扫码支付成功之后自动跳转php版代码
Jul 07 #PHP
You might like
PHP仿盗链代码
2012/06/03 PHP
PHP输出XML格式数据的方法总结
2017/02/08 PHP
javascript下function声明一些小结
2007/12/28 Javascript
对jQuery的事件绑定的一些思考(补充)
2013/04/20 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
2013/11/21 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
jquery 构造函数在表单提交过程中修改数据
2015/05/25 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
JavaScrip常见的一些算法总结
2015/12/28 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
深入学习js瀑布流布局
2016/10/14 Javascript
ubuntu编译nodejs所需的软件并安装
2017/09/12 NodeJs
JavaScript多态与封装实例分析
2018/07/27 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
Python全局变量用法实例分析
2016/07/19 Python
对Python 3.5拼接列表的新语法详解
2018/11/08 Python
python实现通过flask和前端进行数据收发
2019/08/22 Python
Pytorch中accuracy和loss的计算知识点总结
2019/09/10 Python
python实现的分层随机抽样案例
2020/02/25 Python
python入门之井字棋小游戏
2020/03/05 Python
python模拟实现分发扑克牌
2020/04/22 Python
python 实现波浪滤镜特效
2020/12/02 Python
python pillow库的基础使用教程
2021/01/13 Python
公司道歉信范文
2014/01/09 职场文书
工程专业求职自荐书范文
2014/02/08 职场文书
党员创先争优公开承诺书
2014/03/28 职场文书
敬老院活动总结
2014/04/28 职场文书
委托证明模板
2014/09/16 职场文书
作文评语集锦
2014/12/25 职场文书
课外活动总结
2015/02/04 职场文书
工程部岗位职责
2015/02/10 职场文书
pytorch中的torch.nn.Conv2d()函数图文详解
2022/02/28 Python
MyBatis配置文件解析与MyBatis实例演示
2022/04/07 Java/Android
React自定义hook的方法
2022/06/25 Javascript
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis