B
B
Beej's Guide to Network Programming 正體中文版
Search…
B
B
Beej's Guide to Network Programming 正體中文版
簡介
聯絡譯者
簡體中文版
中文授權
原著資訊
進階資料
導讀
何謂 Socket
IP address、結構與資料轉換
從 IPv4 移植為 IPv6
System call 或 Bust
getaddrinfo()-準備開始!
socket()-取得 File Descriptor!
bind()- 我在哪個 port?
connect(),嘿!你好。
listen()-有人會呼叫我嗎?
accept()- 謝謝你 call 3490 port
send() 與 recv()- 寶貝,我們來聊天!
sendto() 與 recvfrom()- 來點 DGRAM
close() 與 shutdown()- 你消失吧!
getpeername()-你是誰?
gethostname()-我是誰?
Client-Server 基礎
進階技術
常見的問題
Man 使用手冊
參考資料
原著誌謝
譯者誌謝
Powered By
GitBook
getpeername()-你是誰?
這個函式很簡單。
它太簡單了,我幾乎不想給它一個獨立的章節,雖然還是給了。
getpeername() 函式會告訴你另一端連線的 stream socket 是誰,函式原型如下:
1
#include <sys/socket.h>
2
int getpeername(int sockfd, struct sockaddr *addr, int *addrlen);
Copied!
sockfd 是連線的 stream socket 之 descriptor,addr 是指向 struct sockaddr(或 struct sockaddr_in)的指標,這個資料結構儲存了連線另一端的資訊,而 addrlen 則是指向 int 的指標,應該將它初始化為 sizeof *addr 或 sizeof(struct sockaddr)。
函式在錯誤時傳回 -1,並設定相對的 errno。
一旦你取得了它們的位址,你就可以用 inet_ntop()、getnameinfo() 或 gethostbyaddr() 印出或取得更多的資訊。不過你無法取得它們的登入帳號。
(好好好,如果另一台電腦執行的是 ident daemon 就可以)。然而,這個已經超出本文的範圍,更多資訊請參考 RFC 1413 [19]。
Previous
close() 與 shutdown()- 你消失吧!
Next
gethostname()-我是誰?
Last modified
1yr ago
Copy link