再論
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的記憶體,將此比喻成尺子上的某個刻度,說刻度本身並沒有長度,只有某兩個...