我想为 Linux Socket API 编写一个 C++ 包装器。在 socket() ctor 中,请求地址族 (AF)。我不想再次在 connect() 签名中要求 AF,因为它已经在套接字的构造函数中给出。那么如何从现有套接字中获取 AF 呢?
问问题
2423 次
2 回答
7
该死。找了半个小时左右。现在发布这个问题后,我立即找到了答案。
带有选项 SO_DOMAIN 的getsockopt([...]) (请参阅套接字选项)
于 2012-11-11T13:42:38.180 回答
6
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];
}
于 2012-11-17T22:45:10.757 回答