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标记的PHP函数
Oct 09 PHP
php 之 没有mysql支持时的替代方案
Oct 09 PHP
php strcmp使用说明
Apr 22 PHP
php利用cookie实现访问次数统计代码
May 19 PHP
PHP header函数分析详解
Aug 06 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
Apr 08 PHP
微信公众平台开发实现2048游戏的方法
Apr 15 PHP
php类的扩展和继承用法实例
Jun 20 PHP
PHP Smarty模版简单使用方法
Mar 30 PHP
yii的入口文件index.php中为什么会有这两句
Aug 04 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
May 30 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
Aug 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源代码
2009/08/21 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
PHP中快速生成随机密码的几种方式
2017/04/17 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
动态修改DOM 里面的 id 属性的弊端分析
2008/09/03 Javascript
ff下JQuery无法监听input的keyup事件的解决方法
2013/12/12 Javascript
JavaScript实现点击单选按钮改变输入框中文本域内容的方法
2015/08/12 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
理解JS绑定事件
2016/01/19 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
vue.js数据绑定操作详解
2018/04/23 Javascript
JS中验证整数和小数的正则表达式
2018/10/08 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
[43:47]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第一局
2016/03/05 DOTA
Python实现从URL地址提取文件名的方法
2015/05/15 Python
在Python中操作列表之list.extend()方法的使用
2015/05/20 Python
Python使用QQ邮箱发送Email的方法实例
2017/02/09 Python
基于scrapy的redis安装和配置方法
2018/06/13 Python
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
Python3 sys.argv[ ]用法详解
2019/10/24 Python
Python基于正则表达式实现计算器功能
2020/07/13 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
Lacoste美国官网:经典POLO衫品牌
2016/10/12 全球购物
来自全球大都市的高级街头服饰:Pegador
2018/01/03 全球购物
埃弗顿足球俱乐部官方网上商店:Everton Direct
2018/01/13 全球购物
Ibatis如何调用存储过程
2015/05/15 面试题
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
2014年应届大学生自我评价
2014/01/09 职场文书
反腐倡廉标语
2014/06/24 职场文书
软件测试专业推荐信
2014/09/18 职场文书
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL
zabbix配置nginx监控的实现
2022/05/25 Servers