int socket(int domain,int type, int protocal)
返回套接字的檔案描述符
domain是套接字的通訊域,每個域都有不同的位址格式
af_inet af_inet6 af_unix af_upsec
af address family 位址族
type是套接字型別 sock_dgram 資料報
sock_stream 位元組流
protocol可以指定為0,表示為給定的域和套接字型別選擇預設協議
int shutdown(int sockfd,int how)
how:shut_rd 關閉讀端,shut_wr 關閉寫端 shut_rdwr
getaddrinfo(const char * restrict host,const char *restrict service,const struct addrinfo *restrict hint,struct addrinfo **restrict res);
提供主機名或者服務名,轉換成位址
host是主機名,service是服務名
res是乙個函式返回的乙個addrinfo鍊錶
hint是過濾位址的模板,用於過濾res中的資訊
bind(int sockfd,const struct sockaddr *addr,socklen_t len);//伺服器端繫結套接字檔案描述符和位址
connect(int sockfd,const struct sockaddr *addr,socklen_t len);//客戶端將sockfd連線至位址addr
如果connect失敗,返回-1,這裡可能導致sockfd的狀態變成未定義,一次可移植的程式在connect失敗後要重新建立套接字
listen(int scokfd,int backlog)//伺服器獲得請求
accept(int sockfd,struct sockaddr *restrict addr,socklen_t *restrict len)//伺服器接收連線請求,並建立連線
sendto(int sockfd,const void *buf,size_t nbytes,int flags,const struct sockaddr *destaddr,socklen_t destlen)
recvfrom(int sockfd,void *restrict buf,size_t len,int flags,struct sockaddr *addr,socklen_t alen);
無連線的傳送與接收
sendto:
destaddr是傳送目標的位址
第十六章 執行緒同步與非同步套接字程式設計
事件物件也屬於核心物件,主要包括三個成員 使用計數 指定是自動重置事件還是人工重置事件的布林值 指定是已通知狀態還是未通知狀態的布林值。createevent函式建立乙個匿名或者命名的事件物件 handle createevent lpsecurity attributes lpeventattri...
第十六章 tcp wrappers
在伺服器向外提供的tcp服務上包裝一層安全檢測機制。外來連線請求首先通過這個安全檢測,獲得安全認證後才可被系統服務接受。hosts.allow hosts.deny 在配置檔案中為各服務分別定義訪問控制規則實現訪問控制,檔案中的規則是即時生效的。配置檔案語法 1 daemon list client...
第十六章 執行緒棧
1 基礎 1 執行緒初始化時,執行緒棧預設1m,所有頁面都是page readwrite屬性,但只為前兩個頁面調撥了物理儲存器,位址低的那個頁面叫防護頁面,為其指定了page guard屬性 2 當執行緒訪問到防護頁面時,由於指定了page guard屬性,系統會得到通知,系統會為防護頁面的下乙個頁...