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

workerman和C++socket通信發(fā)送和接收數(shù)據(jù)不一樣

stroller

剛剛接觸PHP,workerman通過tcp發(fā)送數(shù)字0,接收到數(shù)據(jù)卻是48
[attach]1609[/attach]

[attach]1610[/attach]
可能很基礎(chǔ)但卻是搞不清楚,謝謝大家了

3715 1 0
1個回答

phpcreeper

workerman發(fā)送的數(shù)字0是當(dāng)作字符0發(fā)送的, C++客戶端 (char ) p 接收到的就是對應(yīng)的字符,所以強制轉(zhuǎn)換成整型指針 (int ) p 后, printf("%d", *p) 輸出的就是字符 0 對應(yīng)的十進制數(shù)48, 所以:不要轉(zhuǎn)換,直接 printf("%s", p)? 就可以了。

  • stroller 2019-01-04

    那如何直接發(fā)送數(shù)字0呢?只能通過強制轉(zhuǎn)換嗎?

  • phpcreeper 2019-01-04

    1、workerman的send($data) 其中 $data 參數(shù)最終都會被當(dāng)做字符串來處理了,所以強制轉(zhuǎn)換是沒用的。
    2、如果想傳遞整數(shù),考慮使用php的pack函數(shù)將整數(shù)打包到二進制發(fā)送,這樣C++客戶端按照你一開始的方法讀取就可以了,注意字節(jié)序即可。

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