swoole TCP UDP server

14 篇文章 0 订阅

https://wiki.swoole.com/

<?php

/**
 * Created by PhpStorm.
 * User: whitneywang
 * Date: 2018/4/20
 * Time: 18:21
 */
//创建Server对象,监听 127.0.0.1:9501端口
$serv = new swoole_server("127.0.0.1", 9501);

$serv->set([
    'worker_num' => 8, //worker  进程数 电好CPU 1-4
    'max_request' => 2000,//参数表示worker进程在处理完n次请求后结束运行。manager会重新创建一个worker进程。此选项用来防止worker进程内存溢出
    ]);

//监听连接进入事件 是否连接成功
//$fd 客户端连接到服务端的唯一标识
//$reactor_id 线程ID
$serv->on('connect', function ($serv, $fd, $reactor_id) {
    echo "Client: ".$fd .$reactor_id."-Connect.\n";
});

//监听数据接收事件 客户端发过来的数据
//$from_id 进程数
$serv->on('receive', function ($serv, $fd, $from_id, $data) {
    //向客户端发数据
    $serv->send($fd, "Server: ".$data .$from_id);
});

//监听连接关闭事件
$serv->on('close', function ($serv, $fd) {
    echo "Client: Close.\n";
});

//启动服务器
$serv->start();



telnet 127.0.0.1 9501

Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力

https://wiki.swoole.com/wiki/page/458.html

有没有遇到到ctrl+D和ctrl+C退不出来的

可以以下操作

按ctrl + ],会到telnet>提示符下,再输入exit, quit,ctrl +D 其一即可退出。


UTP

<?php

/**
 * Created by PhpStorm.
 * User: whitneywang
 * Date: 2018/4/20
 * Time: 18:21
 */
//创建Server对象,监听 127.0.0.1:9501端口
$serv = new swoole_server("127.0.0.1", 9502,SWOOLE_PROCESS, SWOOLE_SOCK_UDP);

$serv->set([
    'worker_num' => 8, //worker  进程数 电好CPU 1-4
    'max_request' => 2000,//参数表示worker进程在处理完n次请求后结束运行。manager会重新创建一个worker进程。此选项用来防止worker进程内存溢出
    ]);

//监听连接进入事件 是否连接成功
//$fd 客户端连接到服务端的唯一标识
//$reactor_id 线程ID
$serv->on('connect', function ($serv, $fd, $reactor_id) {
    echo "Client: ".$fd .$reactor_id."-Connect.\n";
});

//监听数据接收事件 客户端发过来的数据
//$from_id 进程数
//监听数据接收事件
$serv->on('Packet', function ($serv, $data, $clientInfo) {
    $serv->sendto($clientInfo['address'], $clientInfo['port'], "Server ".$data);
    var_dump($clientInfo);
});


//监听连接关闭事件
$serv->on('close', function ($serv, $fd) {
    echo "Client: ".$fd."Close.\n";
});

//启动服务器
$serv->start();

//启动服务
//
//php udp_server.php
//UDP服务器可以使用netcat -u 来连接测试
//
//netcat -u 127.0.0.1 9502
//hello
//Server: hello


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值