使用PHP创建SOCKET服务
2023-09-14 09:02:06 时间
最近好奇,接触接触PHP的socket编程,发现还是很好玩儿的。下面贴出来demo源码跟大家分享
Server.php
?php * PHP Socket Server * */ //确保客户端连接时不会超时 error_reporting(0); set_time_limit(0); //设置地址与端口 $address = 127.0.0.1; //服务端ip $port = 2046; //创建socket:AF_INET=是ipv4 如果用ipv6,则参数为 AF_INET6 , SOCK_STREAM为socket的tcp类型,如果是UDP则使用SOCK_DGRAM $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("socket_create() failed : ".socket_strerror(socket_last_error()). "\n"); //阻塞模式 socket_set_block($sock) or die("socket_set_block() failed : ".socket_strerror(socket_last_error()) ."\n"); //绑定到socket端口 $result = socket_bind($sock, $address, $port) or die("socket_bind() failed : ". socket_strerror(socket_last_error()) . "\n"); //开始监听 $result = socket_listen($sock, 4) or die("socket_listen() failed : ". socket_strerror(socket_last_error()) . "\n"); echo "OK\nBinding the socket on $address:$port ...\n"; echo "OK\nNow ready to accept connections.\nListening on the socket ...\n"; do {//Never stop the daemon //它接收连接请求并调用一个子链接socket来处理客户端和服务器间的信息 $msgsock = socket_accept($sock) or die("sock_accept() failed : ". socket_strerror(socket_last_error()) . "\n"); //读取客户端数据 echo "Read client data \n"; $buf = socket_read($msgsock, 8192); echo "Received msg : $buf \n"; //数据传输,向客户端写入返回结果 $msg = "welcome \n"; socket_write($msgsock, $msg, strlen($msg)) or die("socket_write() failed : ". socket_strerror(socket_last_error()). "\n"); //输出返回到客户端时,父/子socket都应通过socket_close来终止 socket_close($msgsock); }while(true); socket_close($sock);
Client.php
?php * php socket client * */ error_reporting(0); set_time_limit(0); $host = 127.0.0.1; $port = 2046; $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Could not create socket.\n"); $connection = socket_connect($socket, $host, $port) or die("Could not connect server.\n"); socket_write($socket, "Hello Socket!") or die("Write failed.\n"); while($buff = socket_read($socket, 1024, PHP_NORMAL_READ)) { echo "Response was : ". $buff . "\n"; socket_close($socket);
使用消息服务(MNS)订阅阿里云物联网平台设备消息PHP示例参考 物联网平台服务端订阅支持将设备消息发送至消息服务(MNS),云端应用通过监听MNS队列,获取设备消息。本文主要演示使用最新版MNS PHP SDK消费订阅到MNS Queue中的消息。
阿里云栖开发者沙龙PHP技术专场-聊聊服务稳定性保障这些事 摘要:本文主要带大家了解服务稳定性的重要性和相关策略。策略大概分两部分,第一方面从架构层面介绍保障服务稳定性的常见策略(限流,降级,隔离,超时,重试和集群)。第二个方面是从流程方面(code review, 压测,灰度和监控)讲解怎么去保证稳定性。
假设你想做一个像微博短链接那样的短链接服务,短链接服务生成的URL都非常短例如: http://t.cn/E70Piib, 我们应该都能想到链接中的E70Piib对应的就是存储长链接地址的数据记录的ID,可是这个有大小写字母和...
相关文章
- 【说站】打开php网页直接创建桌面网页快捷方式的php代码
- nginx不提示php错误如何解决
- 数据库PHP操作MySQL数据库的精彩之旅(php读mysql)
- PHP使用MySQL数据库:最佳实践(php查询mysql数据库)
- 妙用Linux:快速启动PHP程序(linux如何启动php)
- 服务?探索Linux如何启动PHP服务(linux是否启动php)
- 卸载Linux环境下的PHP:一个指南(linux如何卸载php)
- Linux下快速配置PHP开发环境(linux下安装php环境)
- PHP连接MySQL数据库指南(php连接到mysql)
- 【Linux重启PHP服务的命令指南】(linux重启php命令)
- 远程探索——PHP与MySQL的结合(php远程连接mysql)
- 解决方案PHP 解决 MySQL 乱码问题的好办法(mysql乱码php)
- PHP使用Redis扩展连接Redis服务(php开启redis)
- 极速搭建:Linux下PHP网站快速创建(linux搭建php网站)
- PHP 如何调用 MySQL 函数(php调用mysql函数)
- 教你如何用 PHP 创建 MySQL 数据表(php创建mysql表)
- 使用PHP实现Redis分布式缓存(php实例化redis)
- 如何在Linux下快速搭建PHP环境(linux下php环境搭建)
- 使用PHP连接远程MSSQL服务器(php连接远程mssql)
- PHP如何开启MSSQL支持?(php怎么开启mssql)
- Oracle PHP扩展拓展你的开发空间(oracle php扩展)
- PHP和XML:使用expat函数(三)
- php网页后退不再出现过期
- 坏狼的PHP学习教程之第3天
- php购物车实例(申精)
- php程序之die调试法快速解决错误
- php新建文件自动编号的思路与实现
- PHP和Mysqlweb应用开发核心技术第1部分Php基础-1开始了解php
- php笔记之:php函数range()round()和list()的使用说明
- php缩放图片(根据宽高的等比例缩放)实例介绍
- 图解找出PHP配置文件php.ini的路径的方法