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&amp;&amp;mysql)五
Oct 09 PHP
php simplexmlElement操作xml的命名空间实现代码
Jan 04 PHP
让PHP以ROOT权限执行系统命令的方法
Feb 10 PHP
php读取EXCEL文件 php excelreader读取excel文件
Dec 06 PHP
thinkphp使用phpmailer发送邮件的方法
Nov 24 PHP
php将一维数组转换为每3个连续值组成的二维数组
May 06 PHP
浅析PHP中的i++与++i的区别及效率
Jun 15 PHP
PHP闭包定义与使用简单示例
Apr 13 PHP
Yii2框架实现登陆添加验证码功能示例
Jul 12 PHP
php+mysql开发中的经验与常识小结
Mar 25 PHP
php 根据URL下载远程图片、压缩包、pdf等文件到本地
Jul 26 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
Apr 06 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
全国中波电台频率表
2020/03/11 无线电
PHP与已存在的Java应用程序集成
2006/10/09 PHP
用PHP和ACCESS写聊天室(三)
2006/10/09 PHP
php批量删除数据
2007/01/18 PHP
一个简单的php实现的MySQL数据浏览器
2007/03/11 PHP
php minixml详解
2008/07/19 PHP
php中计算程序运行时间的类代码
2012/11/03 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
php对数组排序代码分享
2014/02/24 PHP
php操作memcache缓存方法分享
2015/06/03 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
提交表单后 PHP获取提交内容的实现方法
2016/05/25 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
js跨域问题之跨域iframe自适应大小实现代码
2010/07/17 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
JS(JQuery)操作Array的相关方法介绍
2014/02/11 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
nw.js实现类似微信的聊天软件
2015/03/16 Javascript
javascript控制层显示或隐藏的方法
2015/07/22 Javascript
JS 实现 ajax 异步浏览器兼容问题
2017/01/21 Javascript
vue2.0 常用的 UI 库实例讲解
2017/12/12 Javascript
JS封装的模仿qq右下角消息弹窗功能示例
2018/08/22 Javascript
vscode vue 文件模板的配置方法
2019/07/23 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
详解Vue的mixin策略
2020/11/19 Vue.js
使用Python编写简单的端口扫描器的实例分享
2015/12/18 Python
Django ImageFiled上传照片并显示的方法
2019/07/28 Python
清除canvas画布内容(点擦除+线擦除)
2020/08/12 HTML / CSS
猫途鹰英国网站:TripAdvisor英国(旅游社区和旅游评论)
2016/08/30 全球购物
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
期末自我鉴定
2014/02/02 职场文书
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
体操比赛口号
2014/06/10 职场文书
2015年五一劳动节演讲稿
2015/03/18 职场文书
mysq启动失败问题及场景分析
2021/07/15 MySQL