swoole 建立UDP服務器

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對象

相關文章
相關標籤/搜索