Как обеспечить или сохранить розетку? - PullRequest
2 голосов
/ 02 декабря 2011

Ну, это действительно открытый вопрос: «Как обеспечить или сохранить сокет живым?»

Боюсь, что я должен сказать «извините» за этот открытый вопрос. Но я все еще хочу спросить некоторые идеи.

Как предоставить комплексное решение для приложения, которое позволяет приложению знать, что оба конца работают с ограниченным ресурсом?

Любое решение или предложение приветствуется здесь.

1 Ответ

1 голос
/ 02 декабря 2011

Полагаю, вы имеете в виду сокет TCP.

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

Некоторые протоколы для isntance имеют команду «NOOP», которую можно использовать.

В Linux (но не обязательно в других ОС) вы можете изменять интервал keepalive, используемый SO_KEEPALIVE для каждого сокета (см. Man 7 tcp)

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