我已经开启了一个TCP套接字服务器(我省略了一些内容,这些内容来自这里)。
sockfd = socket(p->ai_family, p->ai_socktype,
p->ai_protocol))
是否可以从sockfd获取服务器的IP地址?如果不行,我应该在哪里查找?
编辑:我想知道服务器的地址(这是在任何客户端连接之前)。
accept
之后,getsockname
会有所帮助。 - ugorenaccept()
本身(可选)返回连接的对等方地址(请参见man accept
)。 - alksocket()
后返回的值既未连接到任何客户端,也未绑定到任何接口,因此无法从任何地方确定客户端 IP 地址或服务器端 IP 地址。 - alkp
不是NULL
,则在for()
循环后立即使用p->ai_addr, p->ai_addrlen
获取IP地址。这是因为这是代码将套接字绑定的方式。 - Heath Hunnicutt