swoole server 16进制 tcp
时间: 2023-08-14 18:02:14 浏览: 136
Swoole Server处理16进制TCP与处理普通TCP类似,只需要在`onReceive`事件回调中对接收到的数据进行处理即可。
示例代码如下:
```php
$server = new Swoole\Server('127.0.0.1', 1234, SWOOLE_PROCESS, SWOOLE_SOCK_TCP);
$server->on('connect', function ($server, $fd) {
echo "client {$fd} connected.\n";
});
$server->on('receive', function ($server, $fd, $reactor_id, $data) {
// 将接收到的二进制数据转换为16进制字符串
$hex_data = bin2hex($data);
echo "received data: {$hex_data}\n";
// 构造响应数据
$response = hex2bin('010203040506');
// 发送响应数据
$server->send($fd, $response);
});
$server->on('close', function ($server, $fd) {
echo "client {$fd} closed.\n";
});
$server->start();
```
在上面的代码中,`onReceive`事件回调中的`$data`参数为接收到的二进制数据,需要使用`bin2hex`函数将其转换为16进制字符串进行处理。同时,需要将需要发送的16进制指令转换为二进制数据发送。
阅读全文