2009-09-13 3 views
0

Нужно ли закрывать соединение tcplistener или tcpclient после каждого полученного сообщения или можно закрыть его позднее, пока оно продолжает получать данные? Есть ли какая-то серьезная проблема безопасности, когда она остается открытой и слушает? Я знаю, что трояны, как правило, открывают слушателя и оставляют его открытым, будет ли моя программа обнаружена как таковая? Его просто простая чат-программа ....Закрытие соединения TCPlistener/клиента

Спасибо за помощь!

Это в vb.net.

ответ

1

Это зависит от того, что такое протокол. Если протокол ожидает нового соединения для каждого сообщения, вы должны его закрыть. (Это похоже на HTTP 1.0.)

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

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

+0

K. Как я могу проверить, какой протокол он использует? – Cyclone

+0

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