Java Socket Программирование за прокси - PullRequest
3 голосов
/ 31 марта 2009

Я написал программу сокета TCP IP, которая работает нормально. Но моя программа сокетов не работала, если мой сервер или клиент находились за прокси. Итак, как преодолеть этот тип проблемы.

Спасибо Бапите

Ответы [ 3 ]

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

Прокси обычно работают на уровне приложений, а не на транспортном уровне. Вот некоторая информация о Java и прокси.

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

Ну, есть две проблемы для рассмотрения:

  1. за прокси; и
  2. За брандмауэром.

Брандмауэр, как правило, проще: вы просто используете порт 80 (HTTP) или 443 (HTTPS). Прокси сложнее, потому что прямая сетевая связь, как правило, отключается от обычных ПК.

Вот почему вы часто встречаете людей, использующих HTTP и / или SSL в качестве транспортных сред, потому что они обходят такие проблемы безопасности. Вы можете сделать push-контент (с долгоживущими соединениями, известными как техники Comet), поэтому обычно нет никаких технических причин не делать этого.

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

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

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

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

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

Является ли этот прокси прозрачным прокси? (То есть, должны ли веб-браузеры быть настроены, чтобы видеть его, или нет?) Тип прокси-сервера, который он определяет, определяет часть того, как ваше приложение должно работать с ним. Контролируется ли прокси вашей организацией?

Вы говорите, что используете порт 5018. Как эксперимент, можете ли вы попробовать использовать порт 80? То, что вы используете порт 80, не означает, что вы должны использовать HTTP. Стоит попробовать, поможет ли это.

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