crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в сокеты
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
oleg_2 Дата 26.7.2009, 21:31
  Спасибо,
Да. Это та функция, которая нужна.
Да. Всё работает и вопрос решён. Спасибо.
ViGOur Дата 26.7.2009, 11:28
  Глянь на функцию getsockname...
oleg_2 Дата 26.7.2009, 0:03
  Язык СИ
ОС 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-адрес клиента ---

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

}

Кто знает, прошу ответить.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 14:51