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


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Max Khon                             2:5000/79.666  29 Nov 2001  01:20:52
 To : Sergey V. Artjushkin
 Subject : get remote ip from accept(2) ?
 -------------------------------------------------------------------------------- 
 
 
 28 Nov 01 19:24, Sergey V. Artjushkin wrote to All:
 
  SVA> Есть сервер, написанный на Си, слушает определенный порт.
  SVA> После того как к нему цепляется какой-нибудь клиент, не могу из 
  SVA> accept(2) вытащить ip этого клиента.
 
  SVA> -------------------------------
  SVA>   /* set up the listening tcp socket*/
  SVA> if ( (l_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
  SVA>    { log_error("socket (tcp) error"); exit(0); }
  SVA> memset(&l_servaddr,0,sizeof(l_servaddr));
  SVA> l_servaddr.sin_family      = AF_INET;
  SVA> l_servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
  SVA> l_servaddr.sin_port        = htons(c_tcpport);
  SVA> if ( bind(l_fd,(struct sockaddr *) &l_servaddr, sizeof(l_servaddr)) 
  SVA> < 0)
  SVA>     { log_error ("bind TCP error"); exit(0); }
  SVA> if ( listen(l_fd, 32) < 0)
  SVA>     { log_error("listen error"); exit(0); }
  SVA> if ( (l_connfd = accept(l_fd,(struct sockaddr *) l_cliaddr, 
  SVA> &l_addrlen)) 
  SVA> < 0)
  SVA>        { log_error("accept error"); exit(0); }
 
  SVA> ----------------------------------------
 
  SVA> Проблема в том, что (struct sockaddr *) l_cliaddr после успешного 
  SVA> выполнения accept, равен NULL. Хотя по докам должен быть совсем не 
  SVA> NULL, а структура с адресом клиента.
 
 как объявлен l_cliaddr?
 сдается мне что ты его объявил как
 struct sockaddr_in *l_cliaddr;
 а надо
 struct sockaddr_in l_cliaddr;
 
 /fjoe
 
 --- Msged/BSD TE 06 (pre)
  * Origin: the number of the beast is vi vi vi (2:5000/79.666)
 
 

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

 Тема:    Автор:    Дата:  
 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/40593c057a31.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional