LINUX.ORG.RU

вопрос по сокету


0

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-адрес клиента ---

обработка запроса

}

Кто знает, прошу ответить.


Ответ на: комментарий от const86

да всё работает ещё раз спасибо

oleg_2
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.