5.10. getpeername() ---你是誰?
這個函數太簡單了。
它太簡單了,以至我都不想單列一章。但是我還是這樣做了。函數 getpeername() 告訴你在連接的流式套接字上誰在另外一邊。函 數是這樣的:
#include<sys/socket.h>
intgetpeername(int sockfd, struct sockaddr *addr, int *addrlen);
sockfd 是連接的流式套接字的描述符。addr是一個指向結構 struct sockaddr (或者是 structsockaddr_in) 的指針,它保存著連接的另一邊的 信息。addrlen 是一個 int 型的指針,它初始化為 sizeof(struct sockaddr)。
函數在錯誤的時候返回-1,設置相應的 errno。
一旦你獲得它們的地址,你可以使用 inet_ntoa() 或者 gethostbyaddr() 來打印或者獲得更多的信息。但是你不能得到它的帳號。(如果它運行著愚蠢的守護進程,這是可能的,但是它的討論已經超出了本文的范圍,請參 考 RFC-1413 以獲得更多的信息。)
摘自 xiaobin_HLJ80的專欄