以下是一个简单的 PHP 脚本,可以监听指定的端口号并处理客户端发来的请求:
<?php
// 创建一个 TCP/IP socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
// 绑定 socket 到指定的地址和端口号
$address = "127.0.0.1"; // 监听地址
$port = 12345; // 监听端口号
socket_bind($socket, $address, $port);
// 开始监听连接请求
socket_listen($socket);
echo "Server listening on $address:$port...
";
// 处理客户端请求
while (true) {
// 等待客户端连接
$clientSocket = socket_accept($socket);
echo "Client connected.
";
// 读取客户端发来的数据
$data = socket_read($clientSocket, 1024);
// 处理客户端请求并发送响应数据
$response = "Hello, client!";
socket_write($clientSocket, $response, strlen($response));
// 关闭客户端连接
socket_close($clientSocket);
echo "Client disconnected.
";
}
// 关闭监听 socket
socket_close($socket);
以上代码通过 socket_create()
函数创建了一个 TCP/IP socket,并使用 socket_bind()
函数将其绑定到指定的地址和端口号。然后使用 socket_listen()
函数开始监听连接请求。
在 while
循环中,使用 socket_accept()
函数等待客户端连接,并使用 socket_read()
函数读取客户端发来的数据。然后处理客户端请求,并使用 socket_write()
函数发送响应数据给客户端。最后使用 socket_close()
函数关闭客户端连接。
在运行以上代码后,可以使用 telnet 工具连接到指定的地址和端口号,例如:
telnet 127.0.0.1 12345
然后输入任意字符,即可收到服务器返回的响应数据。