Обнаружение запросов на соединение без зацикливания - PullRequest
2 голосов
/ 25 января 2011

Мне нужно реализовать какой-нибудь сервер, который сначала ожидает подключения пользователей.Я использую C ++ и SDL_Net, и мой код в настоящее время проверяет активность сокетов в цикле.Проблема в том, что он потребляет большую часть производительности процессора, фактически ничего не делая, поэтому мне интересно, есть ли способ обнаружить запрос соединения / активность сокета с событием или какой-либо регистрацией обратного вызова?Я не боюсь WinAPI, поэтому любое решение приветствуется.Заранее спасибо,

Винсент

Ответы [ 2 ]

2 голосов
/ 25 января 2011

Вы можете использовать SDLNet_SocketSet, создать его, а затем проверить с помощью SDLNet_CheckSockets и SDLNet_SocketReady

1 голос
/ 25 января 2011

Какой сокет API вы используете? Winsock? Если это так, вам нужно вызвать listen() на сокете, чтобы дождаться входящих соединений. Этот вызов заблокирует вызывающий поток, поэтому время ожидания ЦП не используется.

Подробнее см. http://msdn.microsoft.com/en-us/library/ms738545(v=vs.85).aspx.

...