我正在尝试使用 SDLNet_TCP_Send(TCPsocket sock, void *data, int len)
函数(SDL_net 库的一部分),我很难弄清楚如何使用它发送一个 int
。我可以这样做还是应该使用其他方法?
最佳答案
"how I could use this to send an int ... Would I be able to do that or should I use another approach?"
该函数可用于执行此操作。您只需使用一个地址和 sizeof()
:
int dataToSend = 42;
SDLNet_TCP_Send(sock, &dataToSend, sizeof(dataToSend));
根据数据协议(protocol),您可能需要遵守整数数据应以网络字节顺序发送(使其与机器架构无关):
#include <arpa/inet.h>
int dataToSend = htonl(42);
// ^^^^^ Make integer network byte ordered (big endian)
SDLNet_TCP_Send(sock, &dataToSend, sizeof(dataToSend));
关于c++ - 将 int 转换为 void *data 并获取以字节为单位的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29656546/