сокеты, вопро: как узнать |
Здравствуйте, гость ( Вход | Регистрация )
сокеты, вопро: как узнать |
oleg_2 |
26.7.2009, 0:03
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 12 Регистрация: 25.7.2009 Пользователь №: 943 Спасибо сказали: 1 раз(а) Репутация: 0 |
Язык СИ
ОС UNIX Пытаюсь написать сервер подобный описанному сдесь http://rsdn.ru/article/unix/sockets.xml (листинг 6). Машина имеет несколько ip-адресов. Прием запросов со всех имеющихся ip-адресов. Вопрос: возможно ли узнать на какой ip-адрес из них пришел запрос клиента? Краткое содержание: struct sockaddr_in addr; struct sockaddr_in addr1; //--- слушающий сокет sd0 --- sd0 = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); //--- привязать все имеющиеся ip-адреса --- addr.sin_addr.s_addr = INADDR_ANY; k=bind(sd0, (struct sockaddr *)&addr, sizeof(addr)); listen(sd0, 5); while(1){ sd=accept(sd0, (struct sockaddr *)&addr1, &k); //--- при возврате из accept // структура addr1 содержит ip-адрес клиента --- обработка запроса } Кто знает, прошу ответить. |
|
|
ViGOur |
26.7.2009, 11:28
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Глянь на функцию getsockname...
|
|
|
oleg_2 |
26.7.2009, 21:31
Сообщение
#3
|
Студент Группа: Новичок Сообщений: 12 Регистрация: 25.7.2009 Пользователь №: 943 Спасибо сказали: 1 раз(а) Репутация: 0 |
Спасибо,
Да. Это та функция, которая нужна. Да. Всё работает и вопрос решён. Спасибо. |
|
|
Текстовая версия | Сейчас: 22.11.2024, 17:00 |