牛牛在线工具

stream_socket_accept()

收录 8868 个 PHP 函数,含用途说明与用法示例。

stream_socket_accept()

接受一个通过stream_socket_server()函数创建的socket连接,并返回一个新的socket连接用于与客户端通信

函数名称:stream_socket_accept() 函数适用版本:PHP 4 >= 4.1.0, PHP 5, PHP 7 函数描述:stream_socket_accept()函数接受一个通过stream_socket_server()函数创建的socket连接,并返回一个新的socket连接用于与客户端通信。 语法:resource stream_socket_accept ( resource $server_socket [, float $timeout = ini_get("default_socket_timeout") [, string &$peername ]] ) 参数: $server_socket:必需。通过stream_socket_server()函数创建的socket资源。 $timeout:可选。指定等待客户端连接的超时时间,单位为秒,默认值为ini_get("default_socket_timeout"),即php.ini中默认的超时时间。 $peername:可选。用于存储客户端的IP地址和端口号的字符串变量。 返回值:如果成功接受了客户端连接,则返回一个新的socket资源,用于与客户端通信。如果出错,则返回false。 示例: <?php // 创建socket服务器 $server = stream_socket_server('tcp://127.0.0.1:8080', $errno, $errstr); if (!$server) { echo "无法创建socket服务器:$errstr ($errno)"; } else { echo "等待客户端连接...\n"; // 接受客户端连接 $client = stream_socket_accept($server); if (!$client) { echo "无法接受客户端连接"; } else { // 与客户端通信 $message = "欢迎连接到服务器"; fwrite($client, $message); // 读取客户端发送的数据 $data = fread($client, 1024); echo "接收到客户端数据:$data"; // 关闭客户端连接 fclose($client); } // 关闭服务器 fclose($server); } ?> 以上示例中,首先使用stream_socket_server()函数创建了一个socket服务器,并绑定到本地的8080端口。然后使用stream_socket_accept()函数等待客户端连接,并返回一个新的socket资源用于与客户端通信。在与客户端通信过程中,使用fwrite()函数向客户端发送欢迎消息,并使用fread()函数读取客户端发送的数据。最后,使用fclose()函数关闭客户端连接和服务器连接。