从socket获取地址族。 Linux的

时间:2012-11-11 13:38:10

标签: c++ c linux network-programming

我想为Linux Socket API编写一个C ++包装器。在socket()ctor中请求地址族(AF)。我不想再次在connect()签名中要求AF,因为它已经在socket的构造函数中给出了。那么如何从现有的插座中获取AF?

2 个答案:

答案 0 :(得分:7)

该死。搜索了大约半个小时。发布此问题后,我立即找到了答案。

getsockopt([...])选项TO DOMAIN(设置socket options

答案 1 :(得分:5)

POSIX标准的getsockname会有所帮助:

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

它将填写给定的struct sockaddr(成功时):

struct sockaddr {
    unsigned short    sa_family;  // <- that's what you looking for
    char              sa_data[14];  
}