我想爲Linux Socket API編寫一個C++包裝器。在socket()中請求地址族(AF)。我不想再次請求connect()簽名中的AF,因爲它已經在套接字的構造函數中給出了。那麼如何從現有的套接字獲取AF?從套接字獲取地址族。 Linux
3
A
回答
6
該死的。搜索了大約半個小時。現在發佈這個問題後,我立刻發現了答案。
getsockopt([...])與選項SO_DOMAIN(見socket options)
+3
儘管這個選項要小心,因爲它似乎是Linux專用的。如果你正在編寫一個包裝類,你不能僅僅將類型保存爲一個成員變量? –
+0
好主意......謝謝 – ManuelSchneid3r
5
POSIX標準getsockname將幫助:
int getsockname(int socket, struct sockaddr *restrict address,
socklen_t *restrict address_len);
它將在給定結構sockaddr填寫(成功時):
struct sockaddr {
unsigned short sa_family; // <- that's what you looking for
char sa_data[14];
}
相關問題
- 1. 從C++緩衝區中提取IP地址(Linux套接字)
- 2. Errno :: EAFNOSUPPORT(地址族不支持協議 - 套接字(2)):
- 3. Gearmand不啓動 - 套接字地址族不支持
- 4. 獲取套接字/網絡接口的本地IP地址
- 5. 從地址獲取套接字描述符?
- 6. 如何從原始套接字獲取IP src地址
- 7. 從URL獲取IP地址時出現套接字錯誤
- 8. 如何從套接字獲取IP地址在Windows中
- 9. 獲取套接字的本地IP地址
- 10. 獲取傳入套接字連接的源地址
- 11. 如何獲取接受的入站套接字的IP地址?
- 12. 獲取地址IP並使用套接字連接到它
- 13. 從C套接口提取IP地址
- 14. 套接字直接協議錯誤:「協議地址族不支持」
- 15. 從套接字獲取InputStream
- 16. 從套接字獲取域
- 17. 從linux套接字讀取「varint」
- 18. 如何從Windows套接字(C++)獲取連接主機的IP地址?
- 19. 如何使用套接字地址獲取自己的IP地址?
- 20. 「從IP地址創建套接字地址」是什麼意思?
- 21. 從套接字獲取IP從本地主機連接到java
- 22. 如何獲取套接字的IP地址C
- 23. 獲取套接字編程請求的地址爲C
- 24. Akka ZeroMQ - 獲取套接字地址的任何方式?
- 25. 獲取遠程套接字端點的IP地址
- 26. 使用Unix套接字獲取「地址已被使用」錯誤
- 27. 獲取從地址
- 28. 如何從套接字獲得IP地址
- 29. 套接字 - 從終端讀取IP地址
- 30. 使用套接字從地址提取IP
記住地址家族在你的包裝的成員變量? – nos