swoole创建UDP服务器的方法(代码示例)
来源:不言
发布时间:2019-01-16 15:00:01
阅读量:1740
本篇文章给大家带来的内容是关于swoole创建UDP服务器的方法(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
udp_server.php
1 2 3 4 5 6 7 8 9 10 11 12 | <?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();
|
UDP服务器没有连接的概念,启动后客户端无需connect,直接可以向server监听的端口发送数据包。$clientInfo是客户端的相关信息
1.启动服务
1 | $ /usr/local/php/bin/php udp_server.php
|
2.启动成功后,netstat查看
1 2 3 4 | $ ps aux | grep php
oosten 22944 0.0 2.2 314416 23220 pts/4 Sl+ 10:49 0:00 /usr/local/php/bin/php udp_server.php
oosten 22945 0.0 0.4 240032 4084 pts/4 S+ 10:49 0:00 /usr/local/php/bin/php udp_server.php
oosten 22947 0.0 0.7 244732 7148 pts/4 S+ 10:49 0:00 /usr/local/php/bin/php udp_server.php
|
3.nc连接服务器
1 2 | $ nc -u 127.0.0.1 9502 ###-u,使用udp传输协议hello
Server hello
|
4.客户端发送数据包后,服务端打印$clientInfo数据
1 2 3 4 5 6 7 8 9 10 | array (4) {
[ "server_socket" ]=>
int(3)
[ "server_port" ]=>
int(9502)
[ "address" ]=>
string(9) "127.0.0.1"
[ "port" ]=>
int(40635)
}
|
5.结束进程