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 相关文章推荐
使用sockets:从新闻组中获取文章(二)
Oct 09 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
Jul 15 PHP
php中filter函数验证、过滤用户输入的数据
Jan 13 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
Jun 26 PHP
PHP中的事务使用实例
May 26 PHP
PHP实现连接设备、通讯和发送命令的方法
Oct 13 PHP
全面解析PHP面向对象的三大特征
Jun 10 PHP
PHP后期静态绑定之self::限制实例分析
Dec 21 PHP
在Laravel中使用MongoDB的方法示例
Nov 11 PHP
使用Git实现Laravel项目的自动化部署
Nov 24 PHP
PHP高并发和大流量解决方案整理
Dec 24 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
Feb 27 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
咖啡知识 咖啡养豆要养多久 排气又是什么
2021/03/06 新手入门
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
php中截取中文字符串的代码小结
2011/07/17 PHP
根据ip调用新浪api获取城市名并转成拼音
2014/03/07 PHP
CodeIgniter分页类pagination使用方法示例
2016/03/28 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
jQuery中多个元素的Hover事件解决方案
2014/06/12 Javascript
用jquery的方法制作一个简单的导航栏
2014/06/23 Javascript
浅析javascript的间隔调用和延时调用
2014/11/12 Javascript
jQuery模拟新浪微博首页滚动效果的方法
2015/03/11 Javascript
jQuery实现连续动画效果实例分析
2015/10/09 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
Javascript中document.referrer隐藏来源的方法
2017/01/16 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
详解webpack提取第三方库的正确姿势
2017/12/22 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
微信小程序将字符串生成二维码图片的操作方法
2018/07/17 Javascript
JS实现瀑布流效果
2020/03/07 Javascript
Layer UI表格列日期格式化及取消自动填充日期的实现方法
2020/05/10 Javascript
vue根据条件不同显示不同按钮的操作
2020/08/04 Javascript
Python下线程之间的共享和释放示例
2015/05/04 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
基于Python执行dos命令并获取输出的结果
2019/12/30 Python
Python中用xlwt制作表格实例讲解
2020/11/05 Python
Pycharm中使用git进行合作开发的教程详解
2020/11/17 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
css3 transform导致子元素固定定位变成绝对定位的方法
2020/03/06 HTML / CSS
T3官网:头发造型工具
2019/12/26 全球购物
青年标兵事迹材料
2014/08/16 职场文书
2015年党员自我剖析材料
2014/12/17 职场文书
硕士学位论文评语
2014/12/31 职场文书
教代会闭幕词
2015/01/28 职场文书
紧急迫降观后感
2015/06/15 职场文书
中秋节主题班会
2015/08/14 职场文书