将 int 转换为 void *data 并获取以字节为单位的长度

Converting an int to void *data and getting the length in bytes

我正在尝试使用 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)); 

根据数据协议,您可能需要遵守整数数据应以网络字节顺序发送(使其与机器架构无关):

#include <arpa/inet.h>

int dataToSend = htonl(42);
              // ^^^^^ Make integer network byte ordered (big endian)
SDLNet_TCP_Send(sock, &dataToSend, sizeof(dataToSend)); 

鉴于 int x; 你应该能够像这样简单地调用函数:

SDLNet_TCP_Send(socket, &x, sizeof(x));