【问题标题】:How can I get the address and port of a client in C sockets (sys/socket.h)?如何在 C 套接字 (sys/socket.h) 中获取客户端的地址和端口?
【发布时间】:2020-07-25 01:36:05
【问题描述】:

我目前正在处理套接字(在基于 UNIX 的系统上),并希望在连接时获取客户端的地址和端口。我该怎么做?

【问题讨论】:

标签: c sockets


【解决方案1】:

您可以从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-server code作为一个实例(有提取的IPV6地址sin6.sin6_addr)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-01
    • 2020-04-07
    • 2014-12-29
    • 2019-08-28
    • 1970-01-01
    • 2012-12-02
    • 2011-01-08
    • 1970-01-01
    相关资源
    最近更新 更多