Как перезапустить программу сокетов? - PullRequest
1 голос
/ 07 марта 2009

Мне нужно, чтобы мой сервер оставался подключенным к серверу. Кто-нибудь знает как это сделать? Или размещать ссылки на учебники что-нибудь?

Также, когда он перезапускается, он «не может принять клиента», так как мне все очистить и заставить его принять его?

1 Ответ

5 голосов
/ 07 марта 2009

Код сервера:

Для вашего кода на стороне сервера выполните цикл, обертывающий вызов приема. Для созданного принятого сокета создайте новый поток, так что следующее принятие будет вызвано сразу.

При запуске сервера вы также можете использовать флаг SO_REUSEADDR. Таким образом, если у вас произошел сбой или даже быстрый перезапуск программы, ваш сервер сможет снова использовать тот же порт без проблем.

Код клиента:

Для вашего клиентского кода вы просто проверите на наличие ошибки сокета, а если это произойдет, просто установите новое соединение.

Другие ресурсы:

Другие опции:

Вместо простых сокетов в стиле bsd вы также можете попробовать использовать boost asio для упрощения программирования сокетов. Вы можете проверить их страницу примеров .

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