gpt4 book ai didi

c - 在 C 中通过 TCP 发送和接收整数值

转载 作者:可可西里 更新时间:2023-11-01 02:32:19 25 4
gpt4 key购买 nike

在一个程序中,我需要通过 TCP 套接字发送一个整数值。为此,我使用了 send()recv() 函数,但它们仅以字符串形式发送和接收它。

send()recv() 是否有任何替代方法来发送和接收整数值?

最佳答案

send()recv()不要发送字符串。他们发送字节。您可以提供对字节有意义的解释。

如果您想发送整数,您需要决定要发送的整数大小——1 字节、2 字节、4 字节、8 字节等。您还需要决定 encoding format。 . "Network order"描述了 Big-Endian 格式的约定。您可以使用 <arpa/inet.h> 中的以下函数与网络订单相互转换或 <netinet/in.h> :

   uint32_t htonl(uint32_t hostlong);
uint16_t htons(uint16_t hostshort);
uint32_t ntohl(uint32_t netlong);
uint16_t ntohs(uint16_t netshort);

如果你坚持使用 htonl()在发送(主机到网络,长)和 ntohl() 之前收到(网络到主机,长)后,你就可以了。

关于c - 在 C 中通过 TCP 发送和接收整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11147633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com