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 相关文章推荐
我的论坛源代码(二)
Oct 09 PHP
生成php程序的php代码
Apr 07 PHP
关于PHP结束标签的使用细节探讨及联想
Mar 04 PHP
php实现文件下载功能的几个代码分享
May 10 PHP
php通过分类列表产生分类树数组的方法
Apr 20 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
Oct 08 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
Nov 19 PHP
php基于dom实现的图书xml格式数据示例
Feb 03 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
Feb 15 PHP
Laravel中的Blade模板引擎示例详解
Oct 10 PHP
PHP中递归的实现实例详解
Nov 14 PHP
Yii框架多语言站点配置方法分析【中文/英文切换站点】
Apr 07 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 在文件指定行插入数据的代码
2010/05/08 PHP
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
2011/11/10 PHP
基于php split()函数的用法详解
2013/06/05 PHP
php获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
PHP的PDO错误与错误处理
2019/01/27 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
javascript事件问题
2009/09/05 Javascript
JavaScript格式化数字的函数代码
2010/11/30 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
Javascript基础教程之break和continue语句
2015/01/18 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
2015/08/12 Javascript
jQuery插件 Jqplot图表实例
2016/06/18 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
vue异步加载高德地图的实现
2018/06/19 Javascript
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
python 运算符 供重载参考
2009/06/11 Python
python数据结构之链表的实例讲解
2017/07/25 Python
Python中itertools的用法详解
2020/02/07 Python
Python实现列表索引批量删除的5种方法
2020/11/16 Python
python二维图制作的实例代码
2020/12/03 Python
matplotlib绘制正余弦曲线图的实现
2021/02/22 Python
html5 利用canvas手写签名并保存的实现方法
2018/07/12 HTML / CSS
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
女士鞋子、包包和服装在线,第一款10美元:ShoeDazzle
2019/07/26 全球购物
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
构造器Constructor是否可被override?
2013/08/06 面试题
优秀党员获奖感言
2014/02/18 职场文书
公司廉洁自律承诺书
2014/03/27 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
2021/06/09 Python
win sever 2022如何占用操作主机角色
2022/06/25 Servers