Не удается добавить TCP-сокет в набор сокетов с SDL_NET - PullRequest
0 голосов
/ 02 мая 2018

Я получаю эту ошибку при попытке добавить мой сокет в набор сокетов :

Исключение, выданное в 0x69702631 (SDL2_net.dll) в файле PROJECTNAME.exe: 0xC0000005: Местоположение чтения нарушения доступа 0x00000000.

Я не уверен, что мне не хватает. Вот соответствующий код.

SDL_Init(SDL_INIT_EVERYTHING);
SDLNet_Init();
IPaddress serverIP;

SDLNet_SocketSet socketSet = SDLNet_AllocSocketSet(10); 
if (socketSet = NULL)
{
    printf("Failed to create the socket set: %s\n", SDLNet_GetError);
}

if (SDLNet_ResolveHost(&serverIP, NULL, 1234) == -1)
{
    printf("SDLNet_ResolveHost: %s \n", SDLNet_GetError());
    exit(1);
}

TCPsocket serverSocket;
serverSocket = SDLNet_TCP_Open(&serverIP); 

if (!serverSocket)
{
    printf("SDLNet_TCP_Open: %s\n", SDLNet_GetError());

}
else
{
    printf("Successfully created server socket \n");
}
int numused;

numused = SDLNet_TCP_AddSocket(socketSet, serverSocket);
if (numused == -1)
{
    printf("SDLNet_Addsocket: %s \n", SDLNet_GetError());
    while (1)
    {
        printf("1");
    }
}

Любая помощь будет оценена.

1 Ответ

0 голосов
/ 02 мая 2018

Существует несколько опечаток:

if (socketSet = NULL)

Присвоение NULL socketSet, что делает условие ложным, и поэтому позже вы используете его для вызова SDLNet_TCP_AddSocket с нулевым указателем.

printf("Failed to create the socket set: %s\n", SDLNet_GetError);

Отсутствует ().

В целом, рекомендуется включить как можно больше предупреждений, чтобы избежать таких банальных опечаток.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...