Разъем открыт постоянно или просто открывается при необходимости? - PullRequest
1 голос
/ 31 марта 2012

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

Будет лиПравильный способ - каждый раз запускать сокет и закрывать после отправки и получения пакета.Или я должен держать их открытыми и подключенными постоянно?.

Там будет более 100 клиентов, работающих одновременно и подключающихся к серверу.

Кстати, отправленные данные очень важны для их отправкии извлекается в МАКС. 5-10 секунд

Ответы [ 3 ]

2 голосов
/ 31 марта 2012

Определенно, лучше каждый раз открывать новое соединение и сразу же закрывать его. Открытие новых соединений не займет много времени, и с таким подходом более чем легко справиться с требованием 5-10 секунд.

2 голосов
/ 31 марта 2012

Неактивное соединение, продолжающееся полчаса, может быть прервано некоторыми маршрутизаторами / брандмауэрами.Установление соединения TCP / IP сопряжено с определенными затратами, но по сравнению с 5-10 секундами каждые 30 минут оно незначительно.

0 голосов
/ 31 марта 2012

Обычно я оставляю свои TCP-сокеты открытыми, но это зависит от того, что сервер должен делать с этими соединениями.В этом случае я бы, вероятно, закрыл их.Вот правило, которым я обычно следую:

Если вы выполняете аутентификацию каждый раз, когда ваш клиент отправляет данные на сервер, то вашему серверу, вероятно, будет легко сказать «кто есть кто», и вы сможете это сделать.закрывайте его каждый раз.

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

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