UDP 服务器
UDP服务器基于Swoole扩展。
安装方式可参考PHP SWOOLE扩展安装.
服务端代码(udp_server.php)
<?php
$serv = new swoole_server('127.0.0.1',9502,SWOOLE_PROCESS,SWOOLE_SOCK_UDP);
$serv->on('Packet',function($serv,$data,$clientInfo) {
$serv->sendto($clientInfo['address'],$clientInfo['port'],'Server '.$data);
var_dump($clientInfo);
});
$serv->start();
运行代码:
php udp_server.php
客户端代码
<?php
$sock = socket_create(AF_INET,SOCK_DGRAM,SOL_UDP);
socket_set_option($sock,65535,SO_BROADCAST,1);//设置为广播方式
$str = 'hello world';//要发送的字符串
socket_sendto($sock,$str,strlen($str),0,"127.0.0.1",9502);
$result = '';
$from = '';
$port = 0;
socket_recvfrom($sock,$result,65535,0,$from,$port);//接收服务端发送过来的数据
socket_close($sock);//关闭
var_dump($result);
echo '<br>';
var_dump($from);
echo '<br>';
var_dump($port);
注意:socket_recvfrom的第二($result),第五($from),第六($port)个参数必须是变量用于存储服务端的数据。$result存储服务端发送过来的数据,$from存储ip,$port存储远程端口
。
结果示例:
string(18) "Server hello world"
string(9) "127.0.0.1"
int(9502)