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 相关文章推荐
Banner程序
Oct 09 PHP
PHP5新特性: 更加面向对象化的PHP
Nov 18 PHP
《PHP边学边教》(04.编写简易的通讯录――视频教程1)
Dec 13 PHP
浅析PHP递归函数返回值使用方法
Feb 18 PHP
table标签的结构与合并单元格的实现方法
Jul 24 PHP
PHP实现删除非站内外部链接实例代码
Jun 17 PHP
php Imagick获取图片RGB颜色值
Jul 28 PHP
yii实现CheckBox复选框在同一行显示的方法
Dec 03 PHP
laravel中命名路由的使用方法
Feb 24 PHP
yii2 resetful 授权验证详解
May 18 PHP
kindeditor 加入七牛云上传的实例讲解
Nov 12 PHP
PHP连接MySQL数据库三种实现方法
Dec 10 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中常用的数组操作方法笔记整理
2016/05/16 PHP
浅谈php数组array_change_key_case() 函数和array_chunk()函数
2016/10/22 PHP
php实现的二分查找算法示例
2017/06/20 PHP
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
2012/12/16 Javascript
jQuery.buildFragment使用方法及思路分析
2013/01/07 Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
2014/05/26 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
Nodejs实现批量下载妹纸图
2015/05/28 NodeJs
js实现简单折叠、展开菜单的方法
2015/08/28 Javascript
JavaScript中的对象继承关系
2016/08/01 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
使用JS实现导航切换时高亮显示的示例讲解
2018/08/22 Javascript
Vue 无限滚动加载指令实现方法
2019/05/28 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
[00:55]2015国际邀请赛中国区预选赛5月23日——28日约战上海
2015/05/25 DOTA
python求素数示例分享
2014/02/16 Python
Python中使用动态变量名的方法
2014/05/06 Python
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
python验证码识别教程之利用滴水算法分割图片
2018/06/05 Python
python循环输出三角形图案的例子
2019/11/22 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
Python简单实现词云图代码及步骤解析
2020/06/04 Python
Python Web项目Cherrypy使用方法镜像
2020/11/05 Python
CSS3关于z-index不生效问题的解决
2020/02/19 HTML / CSS
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
家长会演讲稿范文
2014/01/10 职场文书
给老师的感谢信
2015/01/20 职场文书
2015年教学管理工作总结
2015/05/20 职场文书
小学体育跳绳课教学反思
2016/02/16 职场文书
instantclient客户端 连接oracle数据库
2022/04/26 Oracle