PHP如何实现简单的Socket
发布:smiling 来源: PHP粉丝网 添加日期:2022-06-14 08:16:39 浏览: 评论:0
PHP如何实现简单的Socket
首先使用PHP制作的Socket服务端,其主要是设置Socket的IP地址及端口号;然后监听端口,如果有客户端连接的话,则接收连接请求和数据,最后处理数据并且返回数据即可。
示例代码:
- <?php
- //确保在连接客户端时不会超时
- set_time_limit(0);
- //设置IP和端口号
- $address = "127.0.0.1";
- $port = 2048; //调试的时候,可以多换端口来测试程序!
- /**
- * 创建一个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() 失败的原因是:" . socket_strerror(socket_last_error()) . "/n");
- //阻塞模式
- socket_set_block($sock) or die("socket_set_block() 失败的原因是:" . socket_strerror(socket_last_error()) . "/n");
- //绑定到socket端口
- $result = socket_bind($sock, $address, $port) or die("socket_bind() 失败的原因是:" . socket_strerror(socket_last_error()) . "/n");
- //开始监听
- $result = socket_listen($sock, 4) or die("socket_listen() 失败的原因是:" . socket_strerror(socket_last_error()) . "/n");
- echo "OK\nBinding the socket on $address:$port ... ";
- echo "OK\nNow ready to accept connections.\nListening on the socket ... \n";
- do { // never stop the daemon
- //它接收连接请求并调用一个子连接Socket来处理客户端和服务器间的信息
- $msgsock = socket_accept($sock) or die("socket_accept() failed: reason: " . socket_strerror(socket_last_error()) . "/n");
- //读取客户端数据
- echo "Read client data \n";
- //socket_read函数会一直读取客户端数据,直到遇见\n,\t或者\0字符.PHP脚本把这写字符看做是输入的结束符.
- $buf = socket_read($msgsock, 8192);
- echo "Received msg: $buf \n";
- //数据传送 向客户端写入返回结果
- $msg = "welcome \n";
- socket_write($msgsock, $msg, strlen($msg)) or die("socket_write() failed: reason: " . socket_strerror(socket_last_error()) ."/n");
- //一旦输出被返回到客户端,父/子socket都应通过socket_close($msgsock)函数来终止
- socket_close($msgsock);
- } while (true);
- socket_close($sock);
Tags: Socket
- 上一篇:PHP使用Redis常见7种使用场景
- 下一篇:最后一页
相关文章
- ·php socket讲解与实例(2013-12-09)
- ·PHP socket模拟POST请求实例(2014-01-18)
- ·php socket 使用smtp服务器发送邮件(2014-01-22)
- ·php中socket实现GET与POST异步提交数据(2014-06-16)
- ·php socket客户端和服务端互相通讯实例(2014-06-19)
- ·PHP中向socket服务器收发数据(2014-08-28)
- ·PHP利用socket模拟post之fsockopen发送数据(2014-09-05)
- ·php Socket 创建 监听等实例(2014-09-09)
- ·php socket通信机制实例说明与代码(2014-09-09)
- ·PHP不支持socket_connect函数开启步骤(2014-09-10)
- ·php基于Socket实现多线程开发教程(2015-04-15)
- ·PHP聊天室_WebSocket技术实战(2016-08-25)
- ·php中socket服务的模型下的编程方式(同步和异步)(2018-09-18)
- ·php socket服务的模型以及实现 多进程IO复用libevent(2018-09-18)
- ·php实现socket推送技术的示例(2018-11-04)
- ·php与flash as3 socket通信传送文件实现代码(2021-03-31)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)