• swoole 创建UDP服务器


    udp_server.php

    <?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.启动服务

    $ /usr/local/php/bin/php udp_server.php 

      2.启动成功后,查看服务进程状态

    $ 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连接服务器

    $ nc -u 127.0.0.1 9502 ###-u,使用udp传输协议
    hello
    Server hello

      4.客户端发送数据包后,服务端打印$clientInfo数据

    array(4) {
      ["server_socket"]=>
      int(3)
      ["server_port"]=>
      int(9502)
      ["address"]=>
      string(9) "127.0.0.1"
      ["port"]=>
      int(40635)
    }

      5.结束进程

     kill 22944

    参考:https://wiki.swoole.com/wiki

  • 相关阅读:
    java-transaction事件
    Cookie,Session基础知识
    JSP基础笔记
    PHP----学生管理系统
    C语言程序设计-----贪吃蛇
    2019年数维杯三场征战赛
    回忆2018年高教杯数学建模大赛
    iPad横屏模式研究
    IOS UIWebView截获html并修改便签内容,宽度自适应
    如何保持iOS上键盘出现时输入框不被覆盖
  • 原文地址:https://www.cnblogs.com/tianxintian22/p/10270807.html
Copyright © 2020-2023  润新知