Как игнорировать определенные запросы сокетов - PullRequest
1 голос
/ 14 июня 2009

В настоящее время я работаю на сервере сокетов TCP в C ++; и я пытаюсь выяснить, как я могу игнорировать все соединения браузера с моим сервером. Есть идеи?

Спасибо.

Ответы [ 3 ]

7 голосов
/ 14 июня 2009

Нужно больше деталей, чтобы дать хороший отзыв.

Собираетесь ли вы прослушивать порт 80, но хотите избежать всего трафика HTTP? Или ваш протокол будет основан на HTTP? Вам нужно слушать на 80 или вы можете выбрать любой порт?

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

EDIT:

Поскольку вы будете прослушивать пользовательский порт, вы, вероятно, не получите никакого трафика из браузера. Кроме того, поскольку вы собираетесь писать свой собственный протокол, просто потребуйте рукопожатие, при котором ваш клиент говорит ваш собственный протокол, а затем проигнорируйте (close ()) все остальное.

Бонусные баллы: в зависимости от вашей цели отправьте обратно сообщение об ошибке HTTP, которое может быть отображено пользователю.

1 голос
/ 14 июня 2009

Вы не можете остановить подключение tcp-сессии, инициированной веб-браузером. Вы можете (как указано выше) закрыть соединение, как только обнаружите, что клиент пытается передать вам http (или любой другой нежелательный протокол прикладного уровня).

0 голосов
/ 14 июня 2009

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

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