accept中的監聽套接字和已連線套接字

2021-08-29 02:47:36 字數 378 閱讀 6457

int accept(int sockfd, struct sockaddr* cliaddr, socklen_t *addrlen);

該函式用於從已完成連線的佇列隊頭返回下乙個已完成連線。

其中sockfd為監聽套接字

cliaddr和addrlen由核心填入客戶端的協議位址

返回值為已連線套接字

乙個服務程序通常只建立乙個監聽套接字,用來監聽是否有客戶端連線到本埠,該監聽套接字在服務程序的生命週期一直存在

服務端和客戶端的一條連線為已連線套接字

其通常由(伺服器ip + port, 客戶端ip +port)組成

隨著客戶端的通上和端開,其套接字也會建立和銷毀

只對於tcp三次握手過程已經完成的連線。

TCP如何區分監聽套接字和已連線套接字???

2010 10 09 10 39 868人閱讀收藏 tcp伺服器 wildcard freebsd socket 2010 2.10 tcp埠號與併發伺服器 併發伺服器中主伺服器迴圈通過派生乙個子程序來處理每個新的連線。如果乙個子程序繼續使用伺服器眾所周知的埠來服務乙個長時間的請求,那將發生什麼?讓...

TCP如何區分監聽套接字和已連線套接字

2.10 tcp埠號與併發伺服器 併發伺服器中主伺服器迴圈通過派生乙個子程序來處理每個新的連線。如果乙個子程序繼續使用伺服器眾所周知的埠來服務乙個長時間的請求,那將發生什麼?讓我們來看乙個典型的序列。首先,在主機freebsd上啟動伺服器,該主機是多宿的,其ip位址為12.106.32.254和19...

socket和accept返回的套接字不同之處。

1 socket返回的套接字用於listen bind或者connect,服務端呼叫listen bind之後再用於生產accept fd,客戶端則connect後直接可以讀寫和服務端通訊。2 accept呼叫socket產生的套接字並返回xi套接新的,用於和客戶端通訊讀寫,若一台伺服器的乙個埠連線...