В настоящее время я работаю над созданием простой онлайновой игры, впервые в SDLNet. Я думал о том, что каждый клиент отправляет структуры с позицией на сервер, а сервер обрабатывает его отправку другим клиентам. Проблема возникает при попытке отправить структуры, содержащие векторы. Если в структурах содержатся только целые числа, сегфо не существует. Я оставлю часть кода:
struct STRUCT_TO_SEND {
std::vector <int> posXs;
std::vector <int> posYs;
};
int buffer_zise = 200;
char buffer[buffer_zise];
//From the client side
STRUCT_TO_SEND test;
test.posXs.push_back(2);
test.posYs.push_back(2);
memcpy(buffer, &test, sizeof(test));
SDLNet_TCP_Send( client, buffer, buffer_zise );
//From the server side
SDLNet_TCP_Recv(clientSocket[i], buffer, buffer_zise);
STRUCTURA_TO_SEND tmp;
memcpy(&tmp, buffer, sizeof(STRUCT_TO_SEND)); //<--Getting segfault
std::cout << tmp.posXs[0] << " " << tmp.posYs[0] << std::endl; //<--Getting segfault
Задача ещё не решена.
Других решений пока нет …