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
Client-Server 基礎
進階技術
常見的問題
Man 使用手冊
accept()
bind()
connect()
close()
getaddrinfo(), freeaddrinfo(), gai_strerror()
gethostname()
gethostbyname(), gethostbyaddr()
getnameinfo()
getpeername()
errno
fcntl()
htons(), htonl(), ntohs(), ntohl()
inet_ntoa(), inet_aton(), inet_addr
inet_ntop(), inet_pton()
listen()
perror(), strerror()
poll()
recv(), recvfrom()
select()
setsockopt(), getsockopt()
send(), sendto()
shutdown()
socket()
struct sockaddr and pals
參考資料
原著誌謝
譯者誌謝
Powered By
GitBook
close()
關閉 socket descriptor
函式原型
1
#include <unistd.h>
2
3
int close(int s);
Copied!
說明
無論你設計了多棒的機制,在你用完 socket 且不想要 send() 或 recv() 時,也就是不會再對這個 socket 做任何事情時,你可以將它 close(),而它就會被釋放,而且永遠不會再用到。
遠端可以用兩種方法判斷對方是否已經關閉 socket,一種是:如遠端呼叫的 recv() 傳回 0;另一種是:若遠端呼叫 send() 時收到一個 SIGPIPE 的訊號(signal),且 send() 傳回 -1 並將 errno 設定為 EPIPE。
Windows 系統的使用者:你要用的函式是 closesocket() 而不是 close(),如果你試著使用 close() 關閉 socket descriptor,那麼 Windows 系統有可能會震怒 ... 它如果敢生氣你就別再愛它了。
傳回值
成功時傳回零,或者錯誤時傳回 -1(並設定相對應的 errno)。
範例
1
s = socket(PF_INET, SOCK_DGRAM, 0);
2
.
3
.
4
.
5
// a whole lotta stuff...*BRRRONNNN!*
6
.
7
.
8
.
9
close(s); // 沒有多少,真的。
Copied!
參考
socket(), shutdown()
Previous
connect()
Next
getaddrinfo(), freeaddrinfo(), gai_strerror()
Last modified
1yr ago
Copy link
Contents
函式原型
說明
傳回值
範例
參考