Принять новое соединение после закрытия клиента (C, winsock2) - PullRequest
0 голосов
/ 26 августа 2018

У меня есть простой HTTP-сервер на winsock2.

Я отправляю запрос Get от моего браузера на сервер и получаю ответ с содержимым.После этого браузер закроет соединение и отправит новый запрос.Что мне нужно сделать, чтобы принять новое соединение?

Я пытаюсь

connectEvent = WSACreateEvent();
WSAEventSelect( sHttp, connectEvent, FD_READ);
WSANETWORKEVENTS netevent;

WSAEventSelect(sHttp,connectEvent, FD_ACCEPT);
WSAWaitForMultipleEvents(1, &connectEvent, FALSE, WSA_INFINITE, FALSE);
WSAEnumNetworkEvents(sHttp,connectEvent,&netevent);
if (netevent.lNetworkEvents & FD_CLOSE){
    printf("closed\n");
    closesocket(sHttp);
}
if (netevent.lNetworkEvents & FD_ACCEPT){
    printf("accepted\n");
    struct sockaddr_in client = {};
    int clientSize = sizeof(client);
    sHttp =  accept(sHttp, (struct sockaddr*)&client, &clientSize);
    WSAEventSelect(sHttp,connectEvent, FD_READ | FD_WRITE | FD_CLOSE);
}

, но соединение не принимается

...