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

workerman socks5 問題

隨某人
  case STAGE_ADDR:
           $cmd = ord($buffer[0]);

     if($cmd != CMD_CONNECT)
            {
                echo "bad cmd $cmd\n";
                $connection->close();
                return;
            }

這是 cmd 是協(xié)議的

CONNECT 0x01 連接
BIND 0x02 端口監(jiān)聽(也就是在Server上監(jiān)聽一個端口)
UDP ASSOCIATE 0x03 使用UDP

我打印出了$buffer 如下:

0501 0003 1277 7777 2e67 6f6f 676c 6561
7069 732e 636f 6d01 bb

這上面是十六進制的,為什么 要 ord 呢?.ord("01")是 48

$str = '0x01';

echo ord($str);

很疑惑這里啥意思,ord($buffer[1])轉(zhuǎn)換字符串字節(jié)為什么是 1....

2473 3 0
3個回答

隨某人

我感覺我哪塊理解錯了,字節(jié)這方便是薄弱點,大神點撥點撥

  • 暫無評論
phpcreeper

接收到的$buffer是二進制串,你打印出來的$buffer是bin2hex()后的16進制串,ord()是獲取第一個字符的ASCII編碼,而這里的ord是為了配合case邏輯。

  • 隨某人 2020-05-13

    難道客戶端發(fā)過來的就是十六進制的字符串嗎?計算機不是通過二進制字符串傳輸數(shù)據(jù)的嗎?

  • 隨某人 2020-05-13

    但是$buffer好像沒有經(jīng)過bin2hex函數(shù),只是一個二進制字符串

  • 隨某人 2020-05-13

    0501 0003 1277 7777 2e67 6f6f 676c 6561
    7069 732e 636f 6d01 bb

    ord是對哪個字符返回的呢,大神

  • phpcreeper 2020-05-13

    看仔細啊,說了接收到的$buffer是二進制串啊,并沒有說接收到的$buffer是經(jīng)過bin2hex的,比如ord[$buffer[0]]就是對接收到的二進制串中的第一個字節(jié)的字符獲取對應(yīng)的ASCII碼。

  • 隨某人 2020-05-14

    @614:nice,懂了,是二進制串

隨某人

但是$buffer好像沒有經(jīng)過bin2hex函數(shù),只是一個二進制字符串

  • phpcreeper 2020-05-13

    上面說了,接收到的$buffer本來就是個二進制串。

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