Номер порта
указываю номер порта (для примера компонент ServerSocket), а если этот порт занят?
Как обработать этот случай?
Я не очень силен в сетевом програмировании, у меня такой вопрос:
указываю номер порта (для примера компонент ServerSocket), а если этот порт занят?
Как обработать этот случай?
Вообщето лучше не использоват занятые порты, но если попал, то обрабатывай ошибки открытия ServerSocket.
может есть ответы поподробнее?
Зы
Иначе Интернет умер бы не начавшись...
например, у нас OfficeScan работает по 12345 порту , соответственно,когда я пытаюсь заставить работать свой сервер по этому же порту, происходят косяки типа bad request и прочее...
как быть?
ЗДЕСЬ дело в занятости порта не клиентом(да и в каком смысле вообще клиент может занять порт?), а другим приложением...
например, у нас OfficeScan работает по 12345 порту , соответственно,когда я пытаюсь заставить работать свой сервер по этому же порту, происходят косяки типа bad request и прочее...
как быть?
Если имеется ввиду работа нескольких серверов на одном порту, то здесь действительно будут проблемы. Тот кто первый пакет из получил, тот и обработал. Если это действительно так уж необходимо (работать по одному порту), в чем у меня лично возникают сомнения, можно реализовать прокси-объект, который будет разруливать пакеты между серверами. Но сие есть гимор и проще пересадить свой сервер на незанятый порт.
Если имеется ввиду работа нескольких серверов на одном порту, то здесь действительно будут проблемы. Тот кто первый пакет из получил, тот и обработал.
нет. глупость и ересь :) два сервера не смогут работать на одном порту вообще. если порт занят, то второй сервер не сможет его забиндить. и сервер не запустится.
автору - впринципе "этот случай" обрабатывать необязательно. его обработает стек TCP/IP на твоей машине. проще всего - выбрать номер слушающего порта проконсультировавшись со списком занятых Well Known портов. например на сайте мелкософта есть список используемых ими портов. в UNIX системах есть файл /etc/services. кроме того - обязательно добавить в программу возможность изменения этого порта через конфиги.
нет. глупость и ересь :) два сервера не смогут работать на одном порту вообще. если порт занят, то второй сервер не сможет его забиндить. и сервер не запустится.
Абсолютная правда. mea culpa
Но все же прослушку порта сделать можно, даже если на нем уже сидит кто-то.
Абсолютная правда. mea culpa
Но все же прослушку порта сделать можно, даже если на нем уже сидит кто-то.
только в случае, если вешать на другой IP. комбинация локальный IP+локальный порт повторяться на машине не может
только в случае, если вешать на другой IP. комбинация локальный IP+локальный порт повторяться на машине не может
Думаю, что можно будет и хуком, и в promiscuous mode
[COLOR=green]//по просьбе любителя пива ;)
/* Сии способы совсем не хороши с точки зрения модели OSI для работы с прикладным уровнем, но применимы в различных ситуациях*/[/COLOR]
Думаю, что можно будет и хуком, и в promiscuity mode
поподробнее пожалуйста. и про хук, и про то, каким место "promiscuity mode" (на самом деле promiscuous) влияет на привязку портов TCP и UDP?
поподробнее пожалуйста. и про хук, и про то, каким место "promiscuity mode" (на самом деле promiscuous) влияет на привязку портов TCP и UDP?
я говорил не о привязке порта, а о получении содержимого пакета пришедшего на порт, на котором висит сервер
я говорил не о привязке порта, а о получении содержимого пакета пришедшего на порт, на котором висит сервер
promiscuous mode не имеет никакого отношения к портам. он порты не слушает. не мешайте все в кучу. TCP/IP не зря на уровни разбит.
promiscuous mode не имеет никакого отношения к портам. он порты не слушает. не мешайте все в кучу. TCP/IP не зря на уровни разбит.
Вы меня слушаете или сами с собой разговариваете? Я говорю не о привязке портов и проч., а о том, что пакеты на порт сервера можно отлавливать и работать с ними.
Впрочем ответ уже получен и тему можно считать исчерпанной.
Но все же прослушку порта сделать можно
на что я собственно и сказал, что перевод сетевого адаптера в promiscuous mode, позволяющий отлавливать пакеты приходящие на машину, не имеет отошения собственно к прослушиванию конкретного порта.
конечный результат будет тот же, вы получите данные , предназначенные определенному TCP порту. однако это не будет "прослушка порта". вы получите их ПЕРЕД тем как они попадут в порт.
я понял, что вы имели ввиду, но советую быть осторожнее с терминологией, особенно когда отвечаете новичкам. не надо в их мозгах кашу заваривать.
Впрочем ответ уже получен и тему можно считать исчерпанной.
согласен :)