Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2009.09.13;
Скачать: [xml.tar.bz2];

Вниз

Как посадить Server на нужную сетевую карту.   Найти похожие ветки 

 
olegNik   (2008-03-18 09:03) [0]

У меня три сетевухи.
При  Server.active := true сервер выбирает не ту что мне нужно, скажим 192.168.5.1. Подскажите как посадить его на соседнюю с IP 192.168.7.1. И вообще чем компанент руководствует когда на компе более одной сетевухи?


 
Григорьев Антон ©   (2008-03-18 09:08) [1]

Для начала неплохо бы уточнить, что это у вас за компонент такой - Server. Потому что если явно не задавать адрес, то при наличии нескольких интерфейсов серверный сокет садится сразу на все, чтобы он сел только на один, его надо специально ограничивать. Поэтому нужно знать, что за компонент вы используете, чтобы понять, как именно он вводит это ограничение.


 
olegNik   (2008-03-18 09:39) [2]

компонент TServerSocket
А еще было бы классно получить список IP всех сетевух на одном компе.


 
Polevi   (2008-03-18 10:06) [3]

для TServerSocket никак


 
olegNik   (2008-03-18 10:17) [4]


> для TServerSocket никак

А есть выход?


 
Сергей М. ©   (2008-03-18 10:18) [5]


> есть выход?
>


Есть.

TIdTCPServer вместо TServerSocket

У него есть св-во Bindings, которое как раз и отвечает за то что тебе нужно


 
Григорьев Антон ©   (2008-03-18 10:22) [6]


> А еще было бы классно получить список IP всех сетевух на
> одном компе

http://msdn2.microsoft.com/en-us/library/ms738524.aspx


 
Reindeer Moss Eater ©   (2008-03-18 14:37) [7]

> А еще было бы классно получить список IP всех сетевух на
> одном компе


А еще класснее получить список не сетевух, а сетевых интерфейсов.


 
kami   (2008-03-26 09:58) [8]


> для TServerSocket никак

А если внести изменения в генофонд (не глобально, а положив ScktComp.pas в папку с проектом):
1. вынести свойство address в published TServerSocket
2. в TCustomWinSocket.AsyncInitSocket
case FLookupState of
     lsIdle:
       begin
         if not Client then
         begin
           FLookupState := lsLookupAddress;
           FAddr.sin_addr.S_addr := inet_addr(PChar(Address)); // раньше было INADDR_ANY
??

Какими граблями это может грозить?


 
kami   (2008-03-26 10:01) [9]

понятно, что это только для асинхронных сокетов, но именно они меня и интересуют :)


 
Polevi ©   (2008-03-27 08:34) [10]

работать будет


 
Сергей М. ©   (2008-03-27 10:07) [11]


> kami   (26.03.08 09:58) [8]


Не надо курочить генофонд)

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

bind() в данном случае вызывается только для слушающего гнезда в составе TServerSocket, режим (non-blocking или thread-blocking) значения не имеет.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2009.09.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.004 c
3-1227078955
pavel_guzhanov
2008-11-19 10:15
2009.09.13
как проверить, входит ли значение в набор данных?


2-1247061735
Тунец
2009-07-08 18:02
2009.09.13
Сетевое программирование


15-1247691352
Германн
2009-07-16 00:55
2009.09.13
Сколько максимально может потреблять телевизор ЭЛТ


15-1247038461
SP
2009-07-08 11:34
2009.09.13
Вопрос по сайту на хостинге


15-1247513346
Тима
2009-07-13 23:29
2009.09.13
Требуется помощь в написании программы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский