URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4677
[ Назад ]

Исходное сообщение
"Проблемма с запуском нескольких серверов"

Отправлено Darknode , 22-Сен-05 21:33 
Есть написанные сервисы под *nix ...
Указываю IP разные для них, но с одним и тем же номером порта.

Запускаю первый сервис, все нормально bind проходит нормально, запускаю второй, который байндится на другой IP, но сообщает об ошибке, что адрес уже занят...
Как такое может быть, ведь указан другой IP?
Помогите плз!


Содержание

Сообщения в этом обсуждении
"Проблемма с запуском нескольких серверов"
Отправлено chip , 24-Сен-05 09:42 
>Есть написанные сервисы под *nix ...
>Указываю IP разные для них, но с одним и тем же номером
>порта.
>
>Запускаю первый сервис, все нормально bind проходит нормально, запускаю второй, который байндится
>на другой IP, но сообщает об ошибке, что адрес уже занят...

попробуй после запуска первого сервиса netstat -an | grep LISTEN . Возможно, он все-таки садится на все интерфейсы.


"Проблемма с запуском нескольких серверов"
Отправлено Darknode , 26-Сен-05 20:58 
>>Есть написанные сервисы под *nix ...
>>Указываю IP разные для них, но с одним и тем же номером
>>порта.
>>
>>Запускаю первый сервис, все нормально bind проходит нормально, запускаю второй, который байндится
>>на другой IP, но сообщает об ошибке, что адрес уже занят...
>
>попробуй после запуска первого сервиса netstat -an | grep LISTEN . Возможно,
>он все-таки садится на все интерфейсы.

запустил один сервер, посмотрел netstat -an | grep LISTEN ,сервис сидит на одном IP с нужным портом...
Запускаю другой, с другим IP  и с тем же портом, говорит, что занято :(
Чего то не догоняю...


"Проблемма с запуском нескольких серверов"
Отправлено Darknode , 26-Сен-05 21:03 
>>>Есть написанные сервисы под *nix ...
>>>Указываю IP разные для них, но с одним и тем же номером
>>>порта.
>>>
>>>Запускаю первый сервис, все нормально bind проходит нормально, запускаю второй, который байндится
>>>на другой IP, но сообщает об ошибке, что адрес уже занят...
>>
>>попробуй после запуска первого сервиса netstat -an | grep LISTEN . Возможно,
>>он все-таки садится на все интерфейсы.
>
>запустил один сервер, посмотрел netstat -an | grep LISTEN ,сервис сидит на
>одном IP с нужным портом...
>Запускаю другой, с другим IP  и с тем же портом, говорит,
>что занято :(
>Чего то не догоняю...

кстати, может в чем то здесь дело?
я сделал ifconfig:

[root]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:12:19:BB:F9:12
          inet addr:xxx.xxx.xxx.210  Bcast:xxx.xxx.xxx.215  Mask:255.255.255.248
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:876738334 errors:0 dropped:0 overruns:0 frame:0
          TX packets:425933040 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1592879098 (1519.0 Mb)  TX bytes:4287955341 (4089.3 Mb)
          Interrupt:11 Base address:0xc000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:9183839 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9183839 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:3018611262 (2878.7 Mb)  TX bytes:3018611262 (2878.7 Mb)


"Проблемма с запуском нескольких серверов"
Отправлено azalio , 25-Сен-05 03:06 
>Запускаю первый сервис, все нормально bind проходит нормально, запускаю второй, который байндится
>на другой IP, но сообщает об ошибке, что адрес уже занят...
>
>Как такое может быть, ведь указан другой IP?
>Помогите плз!

Запусти lsof -i и посмотри кто занял.


"Проблемма с запуском нескольких серверов"
Отправлено sinus , 28-Сен-05 01:28 
>Есть написанные сервисы под *nix ...
>Указываю IP разные для них, но с одним и тем же номером
>порта.
>
>Запускаю первый сервис, все нормально bind проходит нормально, запускаю второй, который байндится
>на другой IP, но сообщает об ошибке, что адрес уже занят...
>
>Как такое может быть, ведь указан другой IP?
>Помогите плз!

попробуй после создания сокета на всех сервисах вызвать setsockopt(2)   c с параметром SO_REUSEADDR и\или SO_REUSEPORT. Осине наплевать на адрес, список дескрипторов сокетов один на все интерфейсы.