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 相关文章推荐
html中select语句读取mysql表中内容
Oct 09 PHP
iis下php mail函数的sendmail配置方法(官方推荐)
Apr 25 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
Jul 05 PHP
php stream_get_meta_data返回值
Sep 29 PHP
php配置php-fpm启动参数及配置详解
Nov 04 PHP
php图片处理函数获取类型及扩展名实例
Nov 19 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
Dec 04 PHP
PHP与Ajax相结合实现登录验证小Demo
Mar 16 PHP
PHP flush 函数使用注意事项
Aug 26 PHP
PHPstorm快捷键(分享)
Jul 17 PHP
实现laravel 插入操作日志到数据库的方法
Oct 11 PHP
PHP 枚举类型的管理与设计知识点总结
Feb 13 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/12/06 PHP
一步一步学习PHP(5) 类和对象
2010/02/16 PHP
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
两种php去除二维数组的重复项方法
2015/11/04 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
2017/03/24 PHP
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
2007/07/21 Javascript
使用jQuery的ajax功能实现的RSS Reader 代码
2009/09/03 Javascript
学习javascript,实现插入排序实现代码
2011/07/31 Javascript
利用JQuery动画制作滑动菜单项效果实现步骤及代码
2013/02/07 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
node.js中的path.isAbsolute方法使用说明
2014/12/08 Javascript
JavaScript中switch语句的用法详解
2015/06/03 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
2016/03/10 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
React Native仿美团下拉菜单的实例代码
2017/08/08 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
分享ES6的7个实用技巧
2018/01/18 Javascript
关于Vue组件库开发详析
2018/07/01 Javascript
微信小程序如何使用globalData的方法
2019/06/06 Javascript
JavaScript组合模式---引入案例分析
2020/05/23 Javascript
vue实现图片按比例缩放问题操作
2020/08/11 Javascript
[00:43]TI7不朽珍藏III——幽鬼不朽展示
2017/07/15 DOTA
[02:23]2018DOTA2亚洲邀请赛趣味视频——反应测试
2018/04/04 DOTA
前端H5 Video常见使用场景简介
2020/08/21 HTML / CSS
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
2012/06/05 面试题
C#怎么让一个窗口居中显示?
2015/10/20 面试题
茶叶店创业计划书范文
2014/01/19 职场文书
法制宣传教育方案
2014/05/09 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
旷工检讨书大全
2015/08/15 职场文书
公司会议开幕词
2016/03/03 职场文书
详解Mysql和Oracle之间的误区
2021/05/18 MySQL