![](/img/trans.png)
[英]Advantages/Disadvantages of using __int16 (or int16_t) over int
[英]How to send int16_t over TCP socket?
如何在C ++ TCP套接字上安全地傳輸int16_t? 在下面的代碼中,服務器似乎未接收到正確的值,我的猜測是因為未為int16_t定義htonl / ntohl。
客戶:
void client(int16_t value, int socket) {
int16_t _value = htonl(value);
write(socket, _value, sizeof(int16_t));
}
服務器:
int16_t server(int16_t buf, int16_t value, int socket) {
recv(socket,&buf,sizeof(int16_t));
value = ntohl(buf);
return value;
}
當您應該使用短版本ntohs()
和htons()
時,則使用長版本的ntohl()
和htonl()
htons()
。
專家提示:確保檢查write()和recv()的返回值(並考慮將write()與read()或send()與recv()一起使用,因為它們是更常見的配對)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.