企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# socket_create_listen * * * * * 说明: > 在指定的端口上打开类型为AF_INET的资源流套接字,用于接受连接 语法: ~~~ resource socket_create_listen ( int $port [, int $backlog = 128 ] ) ~~~ 参数: | 参数 | 描述 | | --- | --- | | port | 需要在哪个端口创建,没有指定端口号,或者为0,则随机选择一个端口号,端口号必须为1 - 65535的有效端口号| | backlog | 设置该socket可接受连接的最大数| 返回值: | 成功 | 失败 | | --- | --- | | 返回一个socket套接字资源 (resource数据类型) | false | 返回失败,错误代码会传入 socket_last_error() ,如果将此参数传入 socket_strerror() 则可以得到错误的文字说明。 技术细节: PHP版本:PHP 4 >= 4.1.0, PHP 5, PHP 7 实例: 服务端代码 server.php ~~~ // 在5520端口上打开资源流套接字,用于接受连接 $sock = socket_create_listen(5520); //根据$sock 获取 主机地址 和 端口 socket_getsockname($sock, $addr, $port); print "Server Listening on $addr:$port\n"; //循环 判断是否有连接 while ($new_socket = socket_accept($sock)) { // 获取客户端连接的 地址 和 端口 socket_getpeername($new_socket, $raddr, $rport); print "Received Connection from $raddr:$rport\n"; } //工作完毕,关闭套接流 socket_close($sock); ~~~ 客户端代码 client.php ~~~ //创建一个socket套接流 $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //连接上面服务端的套接流 socket_connect($socket, '127.0.0.1', 5520); //工作完毕,关闭套接流 socket_close($socket); ~~~ 打开windows的cmd窗口,然后,运行php server.php 再打开另外一个cmd窗口 ,然后,运行php client.php 服务端信息: ![](https://box.kancloud.cn/a6ddaaeb934080efafc3ba6413710973_354x59.png) 注: 1、windows中需要把 php这个运行命名 加入环境变量中 2、需要在php.ini 开启extension=sockets 模块 资料来源: http://php.net/manual/zh/function.socket-create-listen.php backlog参数详解:https://www.jianshu.com/p/e6f2036621f4