При программировании сокетов в "C", как мне узнать IP-адрес Клиента, который подключается к Серверу? - PullRequest
1 голос
/ 02 апреля 2012

При программировании сокетов в "C", как узнать IP-адрес Клиента, который подключается к Серверу? Как сервер может получить IP-адрес клиента?

1 Ответ

7 голосов
/ 02 апреля 2012

Вы не упомянули API, но функция / системный вызов accept обычно принимает аргумент sockaddr *, в котором хранится адрес партнера.

int accept(int socket, struct sockaddr *restrict address, /* <---- */
       socklen_t *restrict address_len);

В качестве альтернативы вы можете использовать getpeername для получения того же адреса в более позднее время.

int getpeername(int socket, struct sockaddr *restrict address,
       socklen_t *restrict address_len);

Если вы используете winapi: accept,getpeername.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...