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 0.0 2.2 pts/ Sl+ : : /usr/local/php/bin/php udp_server.php
oosten 0.0 0.4 pts/ S+ : : /usr/local/php/bin/php udp_server.php
oosten 0.0 0.7 pts/ S+ : : /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() {
  ["server_socket"]=>
  int()
  ["server_port"]=>
  int()
  ["address"]=>
  string() "127.0.0.1"
  ["port"]=>
  int()
}
5.结束进程
kill
参考:https://wiki.swoole.com/wiki
swoole 创建UDP服务器的更多相关文章
- node.js中通过dgram数据报模块创建UDP服务器和客户端
		
node.js中 dgram 模块提供了udp数据包的socket实现,可以方便的创建udp服务器和客户端. 一.创建UDP服务器和客户端 服务端: const dgram = require('dg ...
 - Swoole学习(三)Swoole之UDP服务器的创建
		
环境:Centos6.4,PHP环境:PHP7 <?php //创建UCP服务器(UDP服务器相对于TCP服务器通信更可靠些) /** * $host 是swoole需要监听的ip,如果要监听本 ...
 - swoole 创建tcp服务器
		
server.php <?php /** * 创建tcp服务器 * Date: 2019/1/15 */ $serv = new swoole_server('127.0.0.1', 9501) ...
 - swoole创建websocket服务器
		
目录 1 安装准备 1.1 安装swoole前必须保证系统已经安装了下列软件 1.2 下载并解压 1.3 编译安装成功后,修改php.ini 2 构建Swoole基本实例 2.1 tcp服务器实例 2 ...
 - swoole 创建web服务器
		
http_server.php $http = new swoole_http_server("0.0.0.0", 9501); // 请求监听事件 $http->on('r ...
 - Swoole 创建服务
		
1: 创建TCP 服务器 $serv = new swoole_server(‘127.0.0.1’,9501); 2:创建UDP服务器 $serv = new swoole_server('127 ...
 - 【Swoole】简单安装与创建TCP服务器
		
pecl install swoole PHP的异步.并行.高性能网络通信引擎,使用纯C语言编写,提供了php语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据 ...
 - Swoole学习(二)Swoole之TCP服务器的创建
		
环境:Centos6.4,PHP环境:PHP7 <?php //创建TCP服务器 /** * $host 是swoole需要监听的ip,如果要监听本地,不对外服务,那么就是127.0.0.1;如 ...
 - socket | tcp客户端 tcp服务器 udp客户端 udp 服务器 创建方法
		
tcp服务器 #coding=utf-8 ''' 这里是tcp服务器端,要先启动 ''' import socket import threading bind_ip = "0.0.0.0& ...
 
随机推荐
- 剑指offer——面试题20:表示数值的字符串
			
#include"iostream" using namespace std; bool IsInt(const char **str); bool IsUnsignInt(con ...
 - 获取浏览器用户代理(user-agent)
			
获取浏览器用户代理(user-agent) 用户代理(user-agent)是浏览器客户端与服务器交互时的重要信息之一,用于帮助网站识别请求用户的浏览器类别,以便于网站发送相应的网页数据. 用户代理数 ...
 - Oracle之索引
			
简介 1.说明 1)索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引.在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中我们利用索引可以不用翻阅整本书即可找到想要的信 ...
 - [原]SuperMap GIS(JavaScript) 拉框放大和缩小功能实现
			
版权声明:本文为博主原创文章,未经博主允许不得转载. var ZoomControl; /* * 拉框缩小 */ function ZoomOut(){ if(ZoomControl==null||Z ...
 - 我的Python升级打怪之路【六】:面向对象(二)
			
面向对象的一些相关知识点 一.isinstance(obj,cls) 检查实例obj是否是类cls的对象 class Foo(object): pass obj = Foo() isinstance( ...
 - Python openpyxl Read
			
#! /usr/bin/env python # coding=utf-8 from openpyxl import Workbook, load_workbook wb = load_workboo ...
 - 使用BeanUtils封装数据时数据类型的转换
			
//获得表单数据 Map<String, String[]> properties = request.getParameterMap(); User user = new User(); ...
 - Cocos2dx v3.9项目位置和基本操作
			
MainScene.lua 在Mydemo\src\app\views下 官方示例 cocos2d-win32.sln在cocos2d-x-3.9\build下 生成项目 -l指定语言,-d指定路径 ...
 - 周记5——随机撒花特效、动态修改伪元素样式、contenteditable属性、手机端调试利器VConsole、浏览器端debug调试
			
记录一些小零碎知识点,以便日后查看~ 1.随机撒花特效 教师节快到了,公司的产品提出一个需求:在IM(即时聊天)聊天界面弹出教师节的祝福“广告”,用户点击“发送祝福”按钮,聊天界面会随机撒花.这里的重 ...
 - MySQL触发器基本介绍
			
基本简介: 1.触发器可以让你在执行insert,update,delete语句的时候,执行一些特定的操作.并且可以在MySQL中指定是在sql语句执行前触发还是执行后触发. 2.触发器没有返回值. ...