分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!
既然服務端已經很虔誠了,很真誠了,處於傾聽狀態,那麼該是去嘗試接受客戶端請求的時候了,別只顧著傾聽,不去接納別人。接納客戶端請求的函式是accept, 我們先來看看函式的原型:
函式的第乙個引數用來標識服務端套接字(也就是listen函式中設定為監聽狀態的套接字),第二個引數是用來儲存客戶端套接字對應的「地方」(包括客戶端ip和埠資訊等), 第三個引數是「地方」的占地大小。返回值對應客戶端套接字標識。winsock_api_linkagesocketwsaapiaccept
( socket s, struct sockaddr far * addr, int far * addrlen )
;
實際上是這樣的: accept函式指定服務端去接受客戶端的連線,接收後,返回了客戶端套接字的標識,且獲得了客戶端套接字的「地方」(包括客戶端ip和埠資訊等)。
accept函式非常地痴情,痴心不改:如果沒有客戶端套接字去請求,它便會在那裡一直痴痴地等下去,直到永遠(注意, 此處討論的是阻塞式的socket. 如果是非阻塞式的socket, 那麼accept函式就沒那麼痴情了, 而是會立即返回, 並意猶未盡地對未來的客戶端扔下一句話: 我等了你, 你不來, 那就算了, 我懶得鳥你)。
可是,我不想等了,我要睡覺了。睡覺之前,最後來看看accpt函式的用法:
unsigned int sockconn = accept(socksrv,(sockaddr*)&addrclient, &len);
給我老師的人工智慧教程打call!
TCP IP程式設計之accept函式詳解
accept函式由tcp伺服器呼叫,用於從已完成連線佇列返回下乙個已完成連線。如果已完成連線隊列為空,那麼程序被投入睡眠 假定套接字默為預設的阻塞方式 函式原型 accept 2 linux programmer s manual accept 2 name accept,accept4 accep...
socket通訊 accept函式
先給出乙個典型的tcp ip通訊示意圖。問題一 socket結構體物件究竟是怎樣定義的?我們知道,在使用socket程式設計之前,需要呼叫socket函式建立乙個socket物件,該函式返回該socket物件的描述符。函式原型 intsocket intdomain,inttype,intproto...
accept函式筆記
includeint accept int sockfd,struct sockaddr cliaddr,socklen t addrlen accept函式有tcp服務呼叫,用於從已完成連線佇列頭返回下乙個已完成連線。如果已完成連線隊列為空,那麼程序被投入睡眠 假定套接字為預設的阻塞方式 返回 若...