如果是使用的某些雲服務器,例如阿里雲,一定要將ECS服務器的安全組設置好,例如UDP端口以9601爲例,必須要設置安全組,不然只能在同一服務器內測試。
EasySwoole框架中,修改EasySwooleEvent.php
public static function mainServerCreate(EventRegister $register)
{
..代碼適當位置,加入以下代碼,就創建了簡單的UDP服務器
..
..
..
..
$server = ServerManager::getInstance()->getSwooleServer();
$subPort = $server->addListener('0.0.0.0','9601',SWOOLE_UDP);
$subPort->on('packet',function (\swoole_server $server, $data, array $client_info){
//這裏處理接收到的數據
..
..
..
//再給客戶端發送個回覆
$server->sendto($client_info['address'], $client_info['port'], 'success');//
//
});
}
客戶端模擬UDP請求,這裏最好再另外一個服務器中測試發送
//連接swoole tcp服務
$client=new swoole_client(SWOOLE_SOCK_UDP);
if(!$client->connect("IP Address",9601)){
echo 'UDP連接失敗';
};
//php cli 常量
fwrite(STDOUT,"請輸入消息:");
$msg=trim(fgets(STDOUT));
//發送消息給tcp server服務器
$client->send($msg);
//接收來自server的數據
$result=$client->recv();
echo $result;