Socket 是一种网络通信协议,它允许不同计算机之间通过网络进行数据交换。在 PHP 中,可以使用 socket 扩展来创建和管理 socket 连接。动态创建 socket 指的是在程序运行时根据需要创建 socket 连接。
以下是一个简单的 PHP 动态创建 TCP socket 的示例:
<?php
$host = '127.0.0.1';
$port = 12345;
// 创建 socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if (!$socket) {
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
exit();
}
// 绑定 socket 到本地地址和端口
$result = socket_bind($socket, $host, $port);
if (!$result) {
echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
socket_close($socket);
exit();
}
// 监听连接
$result = socket_listen($socket, 5);
if (!$result) {
echo "socket_listen() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
socket_close($socket);
exit();
}
echo "Server listening on $host:$port...\n";
// 接受连接
$client = socket_accept($socket);
if (!$client) {
echo "socket_accept() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
socket_close($socket);
exit();
}
echo "Client connected.\n";
// 发送数据到客户端
$message = "Hello, client!";
socket_write($client, $message, strlen($message));
// 读取客户端数据
$input = socket_read($client, 1024);
echo "Received: " . $input . "\n";
// 关闭连接
socket_close($client);
socket_close($socket);
?>希望这些信息对你有所帮助!如果有更多问题,请随时提问。