TCP UDP 傳送 接收0位元組問題

2021-08-01 00:01:36 字數 882 閱讀 2521

再論

tcp udp 

傳送、接收

0位元組問題

傳送時tcp建立連線時,

3次握手的每個報文都是

data區為0

位元組,所以說傳送

0位元組沒有問題。

建立連線後,再傳送

0位元組大小也沒有問題

(api:send

,傳送後返回值為發包的大小)

udp可以傳送

0位元組大小報文。

(api:sendto,

傳送後返回值為發包的大小)

接收時tcp

建立連線時,接收

0位元組沒有問題(

tcp協議實現,不用

recv

函式)。

建立連線後,

使用recv

函式不能接收

0位元組報文

。(windows

平台上不能,

linux

平台未知)

特別的,使用

recv

函式返回

0,表示

連線終止

(關於這個連線到底是

第一次分手,還是第二次分手,待分析) u

dp 可以接收

0位元組大小報文。

(api:r

ecvfrom

,返**到包的大小

) 特別的,如果

recvfrom 

返回值為0,

在linux

平台,有兩種意思,一種表示

socket

關掉(shutdown,

或者設定

linear

屬性) 第二種含義表示收到報文內容大小為

0. 關於如何區分這

2種情況:也在這裡請教各位。

再論Tcp Udp 傳送 接收 0位元組問題

再論 tcp udp 傳送 接收 0位元組問題 傳送時tcp 建立連線時,3次握手的每個報文都是 data區為0 位元組,所以說傳送 0位元組沒有問題。建立連線後,再傳送 0位元組大小也沒有問題 api send 傳送後返回值為發包的大小 udp可以傳送 0位元組大小報文。api sendto,傳送...

解決ftp put 函式0位元組問題

今天修改原有的上傳程式,因為新增了一台伺服器,需要將上傳到web伺服器上之後,在ftp到伺服器,ftp程式很早前就寫過,還是比較簡單的,就是要注意一下服務是主動模式還是被動模式。自己修改好程式後,上傳卻出現檔案已經建立,但是大小為0位元組 用ftp軟體卻沒有問題 仔細想想許可權應該是沒有問題的,遂換...

malloc函式申請0位元組的問題

無意中看到這個問題。malloc函式若申請0位元組,它返回的將會是什麼?會不會仍然是null?在c語言深度剖析上看到這樣的解釋 申請0位元組的記憶體,函式並不返回null,而是返回乙個正常的記憶體位址。但是你卻無法使用這塊大小為0的記憶體,將此比喻成尺子上的某個刻度,說刻度本身並沒有長度,只有某兩個...