Вниз
Скачать: CL | DM;

Сокеты. Заполнение структуры адреса сервера   Найти похожие ветки 

 
Цукор5   (2009-06-30 13:04) [0]

Предположим, у меня несколько сетевых подключений. Скажем, 3.
Что я должен указывать в адресе ?

Addr.sin_family:=PF_Inet;
Addr.sin_port:=HToNS(некий порт);
Addr.sin_addr.S_addr:=InAddr_Any;   // !!! или Inet_Addr(IP одного из моих соединений);


 
Сергей М. ©   (2009-06-30 13:55) [1]


> или Inet_Addr(IP одного из моих соединений);


На момент заполнения структуры никаких соединений с удаленными клиентами еще нет


 
Цукор5   (2009-06-30 13:59) [2]

Нет.


 
Сергей М. ©   (2009-06-30 14:50) [3]

Чего "нет" ?

Я у тебя ничегло не спрашивал - это утверждение, а не вопрос)


 
Цукор5   (2009-06-30 15:32) [4]

Тогда я не понял ответ.
У меня 2 соединения для инета и локалки. А третье это GPRS и именно по нему будут идти пакеты от удаленных устройств.

Ну и чего мне ставить в Addr.sin_addr.S_addr ?


 
Сергей М. ©   (2009-06-30 16:08) [5]


> У меня 2 соединения для инета и локалки. А третье это GPRS


Это не соединения , а сетевые интерфейсы.
Плюс к ним существует еще loopback-интерфейс localhost (127.0.0.1)
Каждый существующий в системе сетевой интерфейс ассоциирован как минимум с одним IP-адресом.

InAddr_Any означает, что твой прикладной сервер будет взаимодействовать  с любым из IP-адресов любого из доступных сет.интерфейсов.

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


 
Цукор5   (2009-06-30 17:17) [6]

Спасибо !


 
Сергей М. ©   (2009-06-30 17:27) [7]


> или Inet_Addr(IP одного из моих соединений);


Не забывай про перевод порядка следования байт: в поле S_addr он д.б. указан как сетевой, а не машинный.

см.
htonl() - машинный в сетевой,
ntohl() - сетевой в машинный



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
2-1246522630
Varkan
2009-07-02 12:17
2009.08.30
IdTCPClient1+IdTCPserver1 передача - получение файла


15-1246255244
TUser
2009-06-29 10:00
2009.08.30
Делюсь ссылочкой на детскую передачу


15-1246084442
Student85236
2009-06-27 10:34
2009.08.30
Как жестко перегрузить Windows XP


2-1246026729
Vayrus
2009-06-26 18:32
2009.08.30
Проблема с GetKeyDateTime в Win XP


2-1246188107
Michael
2009-06-28 15:21
2009.08.30
Блокирующие сокеты




   Наверх