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来处理多个提交任务
May 08 PHP
使用XDebug调试及单元测试覆盖率分析
Jan 27 PHP
ThinkPHP写第一个模块应用
Feb 20 PHP
Zend的Registry机制的使用说明
May 02 PHP
解析如何用php screw加密php源代码
Jun 20 PHP
PHP IE中下载附件问题解决方法
Jan 07 PHP
分享50个提高PHP执行效率的技巧
Dec 26 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
Mar 21 PHP
php探针使用原理和技巧讲解
Sep 17 PHP
php判断数组是否为空的实例方法
May 10 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
Sep 15 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
第六节--访问属性和方法
2006/11/16 PHP
Laravel中log无法写入问题的解决
2017/06/17 PHP
php批量转换文件夹下所有文件编码的函数类
2017/08/06 PHP
Js之软键盘实现(js源码)
2007/01/30 Javascript
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
JavaScript mapreduce工作原理简析
2012/11/25 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
document.compatMode的CSS1compat使用介绍
2014/04/03 Javascript
使用Raygun对Node.js应用进行错误处理的方法
2015/06/23 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
Vue中的v-for循环key属性注意事项小结
2018/08/12 Javascript
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
Vue filter 过滤当前时间 实现实时更新效果
2019/12/20 Javascript
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
Python访问纯真IP数据库脚本分享
2015/06/29 Python
深入浅析python继承问题
2016/05/29 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
基于Python实现用户管理系统
2019/02/26 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
暇步士官网:Hush Puppies
2016/09/22 全球购物
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
有影响力的品牌之家:Our Social Collective
2019/06/08 全球购物
学年自我鉴定范文
2013/10/01 职场文书
企业总经理职责
2014/02/02 职场文书
会计员岗位职责
2014/03/15 职场文书
马丁路德金演讲稿
2014/05/19 职场文书
公司承诺书格式
2014/05/21 职场文书
计算机求职信
2014/07/02 职场文书