這個函數非常簡單,簡單到作者都不想單獨列一節,但為了完整性仍予以介紹。getpeername() 用於獲取已連接流式套接字(TCP)對端的地址信息。
#include <sys/socket.h>
int getpeername(int sockfd, struct sockaddr *addr, int *addrlen);
參數說明:
struct sockaddr(或 struct sockaddr_in)的指針,用於存儲對端地址信息。sizeof(struct sockaddr),返回時包含實際地址長度。返回值:成功返回 0,失敗返回 -1 並設置 errno。
獲得對端地址後,可使用 inet_ntoa() 轉換 IP 字符串,或用 gethostbyaddr() 獲取主機名。但無法直接獲取對端用戶帳號(除非對方運行 ident 守護進程,參見 RFC-1413)。
摘自 xiaobin_HLJ80 的專欄