Я пытаюсь использовать SDLNet_TCP_Send(TCPsocket sock, void *data, int len)
функция (часть библиотеки SDL_net), и мне трудно понять, как я могу использовать это, чтобы отправить int
, Смогу ли я сделать это или я должен использовать другой подход?
«Как я мог использовать это, чтобы послать int … Смогу ли я сделать это или я должен использовать другой подход?»
Функция может быть использована для этого. Вы просто используете адрес и 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));