socket中的read返回0

2021-08-09 13:32:11 字數 332 閱讀 8608

在socket中伺服器與客戶端進行通訊,當其中一方呼叫close(即這一方會傳送乙個fin)關閉套接字之後,另一方read()會返回乙個0。

我之前編寫的乙個伺服器與客戶端通訊(乙個伺服器只連線乙個客戶端):伺服器開兩個程序,乙個用於接收客戶端傳送的資料,另乙個程序用於

向客戶端傳送資料。客戶端開兩個程序也是乙個用於傳送資料乙個用於接收資料。由於建立了兩個程序,那麼套接字的引用計數都為2,只有當客戶

端關閉兩次套接字,在伺服器的read()才會返回0

另外,如果在虛擬機器上執行,開啟兩個shell,乙個執行客戶端,乙個執行伺服器,當關閉執行客戶端的shell,則伺服器的read()會返回0

socket返回值為0的問題排查

lte中,enb和mme之間通過s1ap協議交流,而s1ap的底層協議為sctp。因此s1鏈路的建立,要依賴於sctp底層鏈路的建立。需要配置的sctp引數包括 本地ip 本地埠號 遠端ip 遠端埠號 心跳間隔 最大路徑重傳次數 init最大重傳次數 輸入輸出流個數等。而建立socket是sctp建...

系統呼叫read()的返回錯誤場景

ssize t read int fd,void buf,size t count 從檔案描述符fd中讀取count個位元組的資料放入buf的緩衝區中。返回值 成功返回讀取到的位元組數 count為0,read 返回0 eintr 在讀取到資料以前呼叫被訊號所中斷.eagain 使用 o nonbl...

shell script中read的用法

1 read基本讀取 bin bash testing the read command echo n enter you name echo n 讓使用者直接在後面輸入 read name 輸入的多個文字將儲存在乙個變數中 echo hello name,welcome to my progra ...