php实现udp

PHP 实现 UDP 通信
UDP(用户数据报协议)是一种无连接的传输层协议,适用于对实时性要求高但允许少量丢包的场景。PHP 可以通过 socket 扩展实现 UDP 通信。
创建 UDP 服务器
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_bind($socket, '0.0.0.0', 12345);
while (true) {
socket_recvfrom($socket, $buffer, 1024, 0, $client_ip, $client_port);
echo "Received: $buffer from $client_ip:$client_port\n";
socket_sendto($socket, "ACK", 3, 0, $client_ip, $client_port);
}
socket_close($socket);
创建 UDP 客户端
$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_sendto($socket, "Hello Server", 12, 0, '127.0.0.1', 12345);
socket_recvfrom($socket, $buffer, 1024, 0, $server_ip, $server_port);
echo "Received: $buffer from $server_ip:$server_port\n";
socket_close($socket);
关键函数说明
socket_create(): 创建套接字,参数AF_INET表示 IPv4,SOCK_DGRAM表示 UDP。socket_bind(): 绑定服务器地址和端口。socket_sendto(): 发送数据到指定地址和端口。socket_recvfrom(): 接收数据并获取发送方地址和端口。
注意事项
- UDP 是无连接的,不保证数据包的顺序和可靠性。
- 适合小数据包传输,大数据包可能需要分片。
- 防火墙可能需要配置以允许 UDP 通信。







