<?php
// 创建一个 PHP Socket 服务器的简单示例
// 创建一个 socket
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "\n";
} else {
echo "Socket created\n";
}
// 绑定 socket 到本地地址和端口
$result = socket_bind($socket, '127.0.0.1', 8080);
if ($result === false) {
echo "socket_bind() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
echo "Socket bind successful\n";
}
// 开始监听连接
$result = socket_listen($socket, 3);
if ($result === false) {
echo "socket_listen() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
echo "Socket listening\n";
}
// 接受客户端连接
$client = socket_accept($socket);
if ($client === false) {
echo "socket_accept() failed: reason: " . socket_strerror(socket_last_error($socket)) . "\n";
} else {
echo "Client connected\n";
}
// 从客户端读取数据
$input = socket_read($client, 1024);
echo "Received data: $input";
// 向客户端发送数据
$output = "Hello from server!";
socket_write($client, $output, strlen($output));
// 关闭 socket
socket_close($client);
socket_close($socket);
?>
创建 Socket:
socket_create()
函数创建一个新的 socket。参数分别为地址族(AF_INET
表示 IPv4)、类型(SOCK_STREAM
表示 TCP)和协议(SOL_TCP
表示 TCP 协议)。绑定 Socket:
socket_bind()
将 socket 绑定到指定的 IP 地址和端口(本例中为 127.0.0.1:8080
)。监听连接:
socket_listen()
使 socket 进入监听状态,等待客户端连接。第二个参数表示最大等待队列长度。接受连接:
socket_accept()
接受客户端的连接请求,并返回一个新的 socket 用于与该客户端通信。读取和写入数据:
socket_read()
从客户端读取数据,使用 socket_write()
向客户端发送数据。关闭 Socket:
socket_close()
关闭 socket,释放资源。这个示例展示了如何创建一个简单的 PHP Socket 服务器,监听并处理客户端连接。
上一篇:php数组添加元素
下一篇:php strlen
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站