Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Sergey V. Artjushkin                 2:5020/400     28 Nov 2001  20:24:52
 To : All
 Subject : get remote ip from accept(2) ?
 -------------------------------------------------------------------------------- 
 
 
 День добрый
 
 Коллеги, вот столкнулся с проблемой.
 Есть сервер, написанный на Си, слушает определенный порт.
 После того как к нему цепляется какой-нибудь клиент, не могу из 
 accept(2) вытащить ip этого клиента.
 
 -------------------------------
   /* set up the listening tcp socket*/
 if ( (l_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
    { log_error("socket (tcp) error"); exit(0); }
 memset(&l_servaddr,0,sizeof(l_servaddr));
 l_servaddr.sin_family      = AF_INET;
 l_servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
 l_servaddr.sin_port        = htons(c_tcpport);
 if ( bind(l_fd,(struct sockaddr *) &l_servaddr, sizeof(l_servaddr)) < 0)
     { log_error ("bind TCP error"); exit(0); }
 if ( listen(l_fd, 32) < 0)
     { log_error("listen error"); exit(0); }
 if ( (l_connfd = accept(l_fd,(struct sockaddr *) l_cliaddr, &l_addrlen)) 
 < 0)
        { log_error("accept error"); exit(0); }
 
 ----------------------------------------
 
 Проблема в том, что (struct sockaddr *) l_cliaddr после успешного 
 выполнения accept, равен NULL. Хотя по докам должен быть совсем не NULL, 
 а структура с адресом клиента.
 
 Где я не прав?
 Заранее спасибо.
 
 --- ifmail v.2.15dev5
  * Origin: ISP Caravan(http://www.caravan.ru) News Server (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 get remote ip from accept(2) ?   Sergey V. Artjushkin   28 Nov 2001 20:24:52 
 get remote ip from accept(2) ?   Max Khon   29 Nov 2001 01:20:52 
Архивное /ru.unix.bsd/45203cfb7261.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional