簡體   English   中英

如何在 C sockets (sys/socket.h) 中獲取客戶端的地址和端口?

[英]How can I get the address and port of a client in C sockets (sys/socket.h)?

我目前正在處理 sockets (在基於 UNIX 的系統上),並希望在客戶端連接時獲取客戶端的地址和端口。 我怎樣才能做到這一點?

您可以從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 服務器代碼作為一個實際示例(提取的 IPV6 地址sin6.sin6_addr )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM