Как я могу получить адрес и порт клиента в C сокетах (sys / socket.h)? - PullRequest
1 голос
/ 12 апреля 2020

В настоящее время я возился с сокетами (в системе на основе UNIX) и хотел бы получить адрес и порт клиента при их подключении. Как я могу это сделать?

1 Ответ

0 голосов
/ 12 апреля 2020

Вы можете извлечь его из struct sockaddr_in (или sockaddr_in6).

struct sockaddr_in {
       sa_family_t    sin_family; /* address family: AF_INET */
       in_port_t      sin_port;   /* port in network byte order */
       struct in_addr sin_addr;   /* internet address */
 };

 /* Internet address. */
       struct in_addr {
       uint32_t       s_addr;     /* address in network byte order */
 };

См. Справочную страницу: http://man7.org/linux/man-pages/man7/ip.7.html

Также, Вы можете увидеть мой код DNS-сервера в качестве практического примера (есть извлеченный адрес IPV6 sin6.sin6_addr).

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