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 相关文章推荐
?生?D片??C字串
Dec 06 PHP
ajax+php打造进度条 readyState各状态
Mar 20 PHP
探讨各种PHP字符串函数的总结分析
Jun 05 PHP
ThinkPHP CURD方法之page方法详解
Jun 18 PHP
php+memcache实现的网站在线人数统计代码
Jul 04 PHP
Drupal简体中文语言包安装教程
Sep 27 PHP
PHP yii实现model添加默认值的方法(两种方法)
Nov 10 PHP
Laravel框架中自定义模板指令总结
Dec 17 PHP
解决laravel session失效的问题
Oct 14 PHP
PHP 对象继承原理与简单用法示例
Apr 21 PHP
如何在PHP中使用数组
Jun 09 PHP
phpstudy隐藏index.php的方法
Sep 21 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使用memcache存储session的详解
2013/06/25 PHP
PHP的拦截器实例分析
2014/11/03 PHP
Yii中CGridView实现批量删除的方法
2015/12/28 PHP
Zend Framework教程之Zend_Db_Table用法详解
2016/03/21 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
2017/11/06 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
2020/04/13 PHP
不要小看注释掉的JS 引起的安全问题
2008/12/27 Javascript
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
Vue resource中的GET与POST请求的实例代码
2017/07/21 Javascript
Element-ui之ElScrollBar组件滚动条的使用方法
2018/09/14 Javascript
微信小程序生成二维码的示例代码
2019/03/29 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
详解Vue的ref特性的使用
2020/01/24 Javascript
[01:00:53]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Secret
2018/03/30 DOTA
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python实现抓取网页并且解析的实例
2014/09/20 Python
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
2015/04/16 Python
Golang与python线程详解及简单实例
2017/04/27 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
python爬虫之自动登录与验证码识别
2020/06/15 Python
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
Python List列表对象内置方法实例详解
2019/10/22 Python
python用类实现文章敏感词的过滤方法示例
2019/10/27 Python
Django1.11自带分页器paginator的使用方法
2019/10/31 Python
如何基于Python获取图片的物理尺寸
2019/11/25 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
Claire’s法国:时尚配饰、美容、珠宝、头发
2021/01/16 全球购物
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书