udp_server.phpphp
<?php // 建立Server對象,監聽 127.0.0.1:9502端口,類型爲SWOOLE_SOCK_UDP $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.啓動服務swoole
$ /usr/local/php/bin/php udp_server.php
2.啓動成功後,查看服務進程狀態socket
$ ps aux | grep udp_server 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鏈接服務器spa
$ nc -u 127.0.0.1 9502 ###-u,使用udp傳輸協議 hello Server hello
4.客戶端發送數據包後,服務端打印$clientInfo數據code
array(4) { ["server_socket"]=> int(3) ["server_port"]=> int(9502) ["address"]=> string(9) "127.0.0.1" ["port"]=> int(40635) }
5.結束進程server
kill 22944
參考:https://wiki.swoole.com/wiki對象