摘要: 應用程序使用Winsock與傳輸協議驅動溝通時AFD.SYS負責緩沖區的管理。這就意味著當一個程序調用send或者WSASend發送數據時,數據將被復制到AFD.SYS它自己的內部緩沖區中(依賴SO_SNDBUF的設置)WSASend調用立即返回。然后AFD.SYS在程序后臺將數據發送出去。當然,如果程序想要處理一個比SO_SNDBUF設置的緩沖區需求更大的發送請求,WSASend的調用就會阻塞直到所有的數據都被發送出去。
類似的,從遠程客戶端接收數據時,只要SO_RCVBUF設置的緩沖區還沒有滿,AFD.SYS就會將數據復制進它自己的緩沖區直到所有的發送都已完成。當程序調用recv或者是WSARecv,數據就從AFD.SYS的緩沖區復制到了程序提供的緩沖區中了。 閱讀全文
類似的,從遠程客戶端接收數據時,只要SO_RCVBUF設置的緩沖區還沒有滿,AFD.SYS就會將數據復制進它自己的緩沖區直到所有的發送都已完成。當程序調用recv或者是WSARecv,數據就從AFD.SYS的緩沖區復制到了程序提供的緩沖區中了。 閱讀全文

