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 相关文章推荐
BBS(php &amp; mysql)完整版(五)
Oct 09 PHP
URL Rewrite的设置方法
Jan 02 PHP
自动分页的不完整解决方案
Jan 12 PHP
php命令行使用方法和命令行参数说明
Apr 08 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
Jun 23 PHP
php+html5基于websocket实现聊天室的方法
Jul 17 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
Aug 16 PHP
php.ini中date.timezone设置详解
Nov 20 PHP
PHP实现留言板功能的详细代码
Mar 25 PHP
php文件包含目录配置open_basedir的使用与性能详解
Apr 03 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
Feb 16 PHP
laravel框架实现去掉URL中index.php的方法
Oct 12 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/03 冲泡冲煮
ajax+php控制所有后台函数调用
2015/07/15 PHP
深入理解php printf() 输出格式化的字符串
2016/05/23 PHP
Laravel5中Cookie的使用详解
2017/05/03 PHP
PHP验证类的封装与使用方法详解
2019/01/10 PHP
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
javascript中的delete使用详解
2013/04/11 Javascript
查找iframe里元素的方法可传参
2013/09/11 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
微信小程序开发之好友列表字母列表跳转对应位置
2017/09/26 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
2018/11/14 jQuery
jQuery实现文本显示一段时间后隐藏的方法分析
2019/06/20 jQuery
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
2020/07/24 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
详解Vue3 Teleport 的实践及原理
2020/12/02 Vue.js
[01:45]绝对公平!DOTA2队长征召模式详解
2014/04/25 DOTA
KMP算法精解及其Python版的代码示例
2016/06/01 Python
windows及linux环境下永久修改pip镜像源的方法
2016/11/28 Python
浅谈Python实现贪心算法与活动安排问题
2017/12/19 Python
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
python定向爬取淘宝商品价格
2018/02/27 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
Python DataFrame 设置输出不显示index(索引)值的方法
2018/06/07 Python
python读取指定字节长度的文本方法
2019/08/27 Python
python实现遍历文件夹图片并重命名
2020/03/23 Python
大四毕业生自荐书
2014/07/05 职场文书
法律专业大学生职业生涯规划书:向目标一步步迈进
2014/09/22 职场文书
2014年销售人员工作总结
2014/11/27 职场文书
工作表扬信范文
2015/01/17 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书
让世界充满爱观后感
2015/06/10 职场文书
告诉你一个秘密:富人致富的五大优点
2019/07/11 职场文书