原文:TCP選項之SO_RCVBUF和SO_SNDBUF

每個TCPsocket在內核中都有一個發送緩沖區和一個接收緩沖區,TCP的全雙工的工作模式以及TCP的滑動窗口便是依賴於這兩個獨立的buffer以及此buffer的填充狀態。接收緩沖區把數據緩存入內核,應用進程一直沒有調用read進行讀取的話,此數據會一直緩存在相應socket的接收緩沖區內。再啰嗦一點,不管進程是否讀取socket,對端發來的數據都會經由內核接收並且緩存到socket的內核接收緩 ...

2017-11-07 22:00 0 4685 推薦指數:

查看詳情

TCP協議中的SO_LINGER選項

SO_LINGER選項用來設置延遲關閉的時間,等待套接字發送緩沖區中的數據發送完成。沒有設置該選項時,在調用close()后,在發送完FIN后會立即進行一些清理工作並返回。如果設置了SO_LINGER選項,並且等待時間為正值,則在清理之前會等待一段時間。 以調用close()主動 ...

Sat Jul 20 03:16:00 CST 2013 0 16859
setsockopt 設置TCP選項SO_LINGER

SO_LINGER選項用來設置延遲關閉的時間,等待套接字發送緩沖區中的數據發送完成。 沒有設置該選項時,在調用close()后,在發送完FIN后會立即進行一些清理工作並返回。如果設置了SO_LINGER選項,並且等待時間為正值,則在清理之前會等待一段時間。 以調用close()主動關閉為例 ...

Mon Aug 21 03:16:00 CST 2017 0 1879
TCP協議中的SO_LINGER選項

TCP協議中的SO_LINGER選項 SO_LINGER選項用來設置延遲關閉的時間,等待套接字發送緩沖區中的數據發送完成。沒有設置該選項時,在調用close()后,在發送完FIN后會立即進行一些清理工作並返回。如果設置了SO_LINGER選項,並且等待時間為正值,則在清理之前會等待 ...

Tue May 31 03:04:00 CST 2016 0 5561
SO_KEEPALIVE選項

SO_KEEPALIVE選項 】   對於面向連接的TCP socket,在實際應用中通常都要檢測對端是否處於連接中,連接端口分兩種情況:  1、連接正常關閉,調用close() shutdown()連接優雅關閉,send與recv立馬返回錯誤,select返回SOCK_ERR;  2、連接 ...

Thu Oct 01 01:32:00 CST 2015 0 6002
SOCKET:SO_LINGER 選項

  好多次接觸到SO_LINGER選項,但總是忘了這是干什么用的。現在整理一下,我才明白這個參數是用來設定“SOCKET在CLOSE時候是否等待緩沖區發送完成”這個特性的。下面是一些詳細的說明。 setsockopt 設置 SO_LINGER 選項   此選項指定函數close對面 ...

Thu Apr 17 19:38:00 CST 2014 0 2910
關於SO_LINGER選項的使用

結論: linux開啟SO_LINGER時,如果設置l_linger為非0, 不管是阻塞socket,非阻塞socket, 在這里都會發生阻塞, 而並不是UNP所講到的( 非阻塞socket會立即返回EWOULDBLOCK) 測試結果見這里 https://www.nybek.com ...

Fri Apr 22 22:42:00 CST 2016 0 1634
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM