国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

發(fā)送過來數(shù)據(jù)是十六進制的,workerman不能識別0x00,遇到就結(jié)束接收了

dq1601

發(fā)送過來數(shù)據(jù)是十六進制的,workerman不能識別0x00,遇到就結(jié)束接收了,用bin2hex,但是我用了還是不行,因為 $message根本就不完整,0x00及后面的數(shù)據(jù)都丟失了。那位大蝦可以指點一二。不想用Base64等加密方法,就是想知道workerman到底能不能做到完美支持十六進制的透傳,還是這本身就是一個BUG。

2708 4 0
4個回答

phpcreeper

首先肯定不是BUG,然后這也是一個被問爛了的問題,裸tcp協(xié)議是基于字節(jié)流的本來就如此,簡單說就是會有粘包發(fā)生,需要制定應(yīng)用層通訊協(xié)議,具體看手冊吧: http://doc.workerman.net/protocols/why-protocols.html

  • 暫無評論
xiuwang

服務(wù)端

<?php
require_once __DIR__ . '/vendor/autoload.php';
use Workerman\Worker;

$worker = new Worker('tcp://0.0.0.0:1238');

$worker->onMessage = function($connection, $data) {
    $connection->send($data);
};

Worker::runAll();

測試結(jié)果:
截圖

客戶端發(fā)送完整,workeman接收完整,workerman發(fā)送完整,客戶端接收完整。
估計是你代碼bug了

  • 暫無評論
qufucl

發(fā)上來看看你的解包協(xié)議?

  • 暫無評論
dq1601

謝謝各位,已經(jīng)解決了,是因為包頭數(shù)據(jù)長度錯了,改過來就正常了

  • 暫無評論
年代過于久遠,無法發(fā)表回答
??