Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Номер порта

1.9K
17 января 2003 года
Mistake
23 / / 14.01.2003
Я не очень силен в сетевом програмировании, у меня такой вопрос:
указываю номер порта (для примера компонент ServerSocket), а если этот порт занят?
Как обработать этот случай?
3.3K
18 января 2003 года
cikas
1 / / 18.01.2003
Цитата:
Originally posted by Mistake
Я не очень силен в сетевом програмировании, у меня такой вопрос:
указываю номер порта (для примера компонент ServerSocket), а если этот порт занят?
Как обработать этот случай?



Вообщето лучше не использоват занятые порты, но если попал, то обрабатывай ошибки открытия ServerSocket.

1.9K
13 марта 2006 года
Anton Chik
175 / / 26.09.2005
хотел бы поднять эту тему...
может есть ответы поподробнее?
585
13 марта 2006 года
honeybeer
297 / / 06.09.2004
Откровенно говоря, порт врят ли будет занят. По одному порту может работать оччень большое число клиентов. (1 Порт) != (1 Клиент). Для каждого запроса создается отдельный апартамент ;). Ну к примеру, в нашей локалке Интернет проксированный, прокси-сервер принимает запросы клиентов через 8080, клиентов порядка 150... Вы ведь не думаете, что пока кто-то не закончил интернет-сессию, все остальные судорожно ждут :)

Зы
Иначе Интернет умер бы не начавшись...
1.9K
13 марта 2006 года
Anton Chik
175 / / 26.09.2005
ЗДЕСЬ дело в занятости порта не клиентом(да и в каком смысле вообще клиент может занять порт?), а другим приложением...
например, у нас OfficeScan работает по 12345 порту , соответственно,когда я пытаюсь заставить работать свой сервер по этому же порту, происходят косяки типа bad request и прочее...
как быть?
585
13 марта 2006 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by Anton Chik
ЗДЕСЬ дело в занятости порта не клиентом(да и в каком смысле вообще клиент может занять порт?), а другим приложением...
например, у нас OfficeScan работает по 12345 порту , соответственно,когда я пытаюсь заставить работать свой сервер по этому же порту, происходят косяки типа bad request и прочее...
как быть?


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

2
13 марта 2006 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by honeybeer
Если имеется ввиду работа нескольких серверов на одном порту, то здесь действительно будут проблемы. Тот кто первый пакет из получил, тот и обработал.



нет. глупость и ересь :) два сервера не смогут работать на одном порту вообще. если порт занят, то второй сервер не сможет его забиндить. и сервер не запустится.

автору - впринципе "этот случай" обрабатывать необязательно. его обработает стек TCP/IP на твоей машине. проще всего - выбрать номер слушающего порта проконсультировавшись со списком занятых Well Known портов. например на сайте мелкософта есть список используемых ими портов. в UNIX системах есть файл /etc/services. кроме того - обязательно добавить в программу возможность изменения этого порта через конфиги.

585
13 марта 2006 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by squirL
нет. глупость и ересь :) два сервера не смогут работать на одном порту вообще. если порт занят, то второй сервер не сможет его забиндить. и сервер не запустится.


Абсолютная правда. mea culpa
Но все же прослушку порта сделать можно, даже если на нем уже сидит кто-то.

2
13 марта 2006 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by honeybeer
Абсолютная правда. mea culpa
Но все же прослушку порта сделать можно, даже если на нем уже сидит кто-то.


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

585
13 марта 2006 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by squirL
только в случае, если вешать на другой IP. комбинация локальный IP+локальный порт повторяться на машине не может


Думаю, что можно будет и хуком, и в promiscuous mode
[COLOR=green]//по просьбе любителя пива ;)
/* Сии способы совсем не хороши с точки зрения модели OSI для работы с прикладным уровнем, но применимы в различных ситуациях*/
[/COLOR]

2
13 марта 2006 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by honeybeer
Думаю, что можно будет и хуком, и в promiscuity mode


поподробнее пожалуйста. и про хук, и про то, каким место "promiscuity mode" (на самом деле promiscuous) влияет на привязку портов TCP и UDP?

585
13 марта 2006 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by squirL
поподробнее пожалуйста. и про хук, и про то, каким место "promiscuity mode" (на самом деле promiscuous) влияет на привязку портов TCP и UDP?


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

2
13 марта 2006 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by honeybeer
я говорил не о привязке порта, а о получении содержимого пакета пришедшего на порт, на котором висит сервер


promiscuous mode не имеет никакого отношения к портам. он порты не слушает. не мешайте все в кучу. TCP/IP не зря на уровни разбит.

585
13 марта 2006 года
honeybeer
297 / / 06.09.2004
Цитата:
Originally posted by squirL
promiscuous mode не имеет никакого отношения к портам. он порты не слушает. не мешайте все в кучу. TCP/IP не зря на уровни разбит.


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

2
13 марта 2006 года
squirL
5.6K / / 13.08.2003
я то все слушаю. только изначально было написано:
Цитата:
Originally posted by honeybeer

Но все же прослушку порта сделать можно


на что я собственно и сказал, что перевод сетевого адаптера в promiscuous mode, позволяющий отлавливать пакеты приходящие на машину, не имеет отошения собственно к прослушиванию конкретного порта.
конечный результат будет тот же, вы получите данные , предназначенные определенному TCP порту. однако это не будет "прослушка порта". вы получите их ПЕРЕД тем как они попадут в порт.
я понял, что вы имели ввиду, но советую быть осторожнее с терминологией, особенно когда отвечаете новичкам. не надо в их мозгах кашу заваривать.

Цитата:
Originally posted by honeybeer

Впрочем ответ уже получен и тему можно считать исчерпанной.


согласен :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог