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常用正则表达式的整理汇总
Jun 08 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
Jun 28 PHP
PHP常用正则表达式集锦
Aug 17 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
Oct 13 PHP
CodeIgniter表单验证方法实例详解
Mar 03 PHP
php字符集转换
Jan 23 PHP
php使用PDO获取结果集的方法
Feb 16 PHP
PHP实现随机生成水印图片功能
Mar 22 PHP
Discuz不使用插件实现简单的打赏功能
Mar 21 PHP
PHP进阶学习之类的自动加载机制原理分析
Jun 18 PHP
docker-compose部署php项目实例详解
Jul 30 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 获取本机外网/公网IP的代码
2010/05/09 PHP
thinkphp命名空间用法实例详解
2015/12/30 PHP
WordPress中获取指定分类及其子分类下的文章数目
2015/12/31 PHP
Yii中srbac权限扩展模块工作原理与用法分析
2016/07/14 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
浅谈laravel数据库查询返回的数据形式
2019/10/21 PHP
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
Bootstrap每天必学之简单入门
2015/11/19 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
js自定义QQ菜单效果
2017/01/10 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
2017/02/05 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
2017/07/05 jQuery
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
150行Node.js实现的dns代理工具
2019/08/02 Javascript
vue使用微信扫一扫功能的实现代码
2020/04/11 Javascript
js实现简单的倒计时
2021/01/28 Javascript
解决await在forEach中不起作用的问题
2021/02/25 Javascript
python生成日历实例解析
2014/08/21 Python
Python实现简单截取中文字符串的方法
2015/06/15 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
python文件处理fileinput使用方法详解
2020/01/02 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
Reebok官方旗舰店:美国知名健身品牌锐步
2019/01/07 全球购物
打架检讨书50字
2014/01/11 职场文书
上课看小说检讨书
2014/02/22 职场文书
物流管理专业毕业生求职信
2014/03/23 职场文书
小小商店教学反思
2014/04/27 职场文书
酒店前台辞职书
2015/02/26 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
js面向对象编程OOP及函数式编程FP区别
2022/07/07 Javascript