Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.21.162.87] |
|
Сообщ.
#1
,
|
|
|
Как я понял INADDR_ANY заставляет вставать сервер на все порты всех IP адресов данного сервера (сори за каламбур в первом случае сервер - прога, во втором - физически :-),
а можно ли сделать как нибудь, чтобы сервер вставал на данный порт на все IP кроме например одного, на котором на этом порту будет крутиться что-то другое? Или может быть можно как-нибудь выбирать IP которые должен слушать данный сервер? Спасибо. |
Сообщ.
#2
,
|
|
|
можется все таки номер порта этого "другого" поменять? будет проще - это точно. А с другой
стороны: у твоей машины много i.p. шников? Больше 2-х? Если 2, то можно вместо INADDR_ANY просто руками прописать i.p. твоего сервера. НАверное, так. |
Сообщ.
#3
,
|
|
|
Другой порт никак не канает, так как пишу специализированый www cервер и порт должен быть 80, айпей он должен слушать несколько, однако на одном IP должен крутиться стандартный apache. У апача кстати как-то же реализуеться возможность висеть на разных IP адресах при запуске его одного, вот было бы интересно как это реализуеться?
|
Сообщ.
#4
,
|
|
|
Цитата Гость Mihail, 29.01.04, 05:44 Как я понял INADDR_ANY заставляет вставать сервер на все порты всех IP адресов данного сервера На все интерфейсы, но не на все порты, а на конкретный. Цитата Гость Mihail, 29.01.04, 05:44 а можно ли сделать как нибудь, чтобы сервер вставал на данный порт на все IP кроме например одного, на котором на этом порту будет крутиться что-то другое Определяешь айпишники всех сетевых интерфейсов компа, и вместо INADDR_ANY подставляешь нужный тебе. В этом случае, если у тебя, допустим, 3 интерфейса, а ты хочешь открыть порт только на 2-х, то открывать придется 2 разных сокета. |
Сообщ.
#5
,
|
|
|
2 разных сокета, но сервер то будет один.
что бы 2 раза код не писать, то лучше сделать свой класс MyServerSocket, который и будет все обрабатывать, и т.п. И все таки: неужели у тебя и вправду больше 2-х i.p. шников? |
Сообщ.
#6
,
|
|
|
2 раза код не надо писать, надо просто хэндлы серверных эвентов запихать в один WSAWaitForMultipleEvents
|
Сообщ.
#7
,
|
|
|
WSAWaitForMultipleEvents()
опять ты за своё . а вдруг он под *nix-ом сидит? |
Сообщ.
#8
,
|
|
|
Цитата На все интерфейсы, но не на все порты, а на конкретный я это и имел ввиду, просто немного стремно выразился:-) Цитата разных сокета, но сервер то будет один. что бы 2 раза код не писать, то лучше сделать свой класс MyServerSocket, который и будет все обрабатывать, и т.п. мало того, я даже не знаю сколько сокетов может понадобиться, поэтому скорее всего так делать и буду [QUOTE}И все таки: неужели у тебя и вправду больше 2-х i.p. шников?[/QUOTE} угу Цитата WSAWaitForMultipleEvents() опять ты за своё . а вдруг он под *nix-ом сидит? именно под ним :-) и все-же что то мне подсказывает что у апача это реализовано как то проще, имхо если можно слушать все интерфейсы компа, то по логике наверняка можно как то слушать все кроме каких-то, вопрос только как:-) |
Сообщ.
#9
,
|
|
|
Цитата Guest, 29.01.04, 19:24 вопрос только как Не вопрос - Апач же в исходниках идет |
Сообщ.
#10
,
|
|
|
Что то просто в исходниках копаться неохота, он здоровый :-)
Хотя может стоит попробовать :-) В любом случае всем кто пытался помочь огромный сэнкс! |