UDP通訊及檔案傳輸

2021-09-11 10:27:46 字數 1126 閱讀 6138

udp通訊:理解幾個名詞

1.datagramsocket:用來傳送和接收資料報的套接字(socket),資料報套接字是包投遞服務的傳送或接收點。每個在資料報套接字上傳送或接收的包都是單獨編址和路由的。從一台機器傳送到另一台機器的多個包可能選擇不同的路由,也可能按不同的順序到達。

2.datagrampacket:資料報包,用來實現無連線包投遞服務。每條報文僅根據該包中包含的資訊從一台機器路由到另一台機器。從一台機器傳送到另一台機器的多個包可能選擇不同的路由,也可能按不同的順序到達。不對包投遞做出保證。

4.port :埠號

我有個很通俗的理解,每個人都有自己的家,家裡有很多個門,那麼當乙個人要寄東西給另乙個人時,就會給物品打包,打包之後從家裡的乙個門遞出去給快遞員,快遞員看了位址之後就送到你指定的位址,指定的那個門給對方接收。

以上我做的東西都是傳送乙個包給對方,對方接受乙個包,而如果你要寄的東西很多很多,乙個人都不可以送得完,那就得分幾個包打包,分幾個人傳送。

比如:當你傳送乙個很大的檔案的時候,由於檔案內容過大,我們就可以拆分成多個資料報傳送。

下面我們進入今天正題,實現檔案的傳輸。

首先需要讀取到檔案;

然後對檔案內容轉化成byte陣列,定義每個包的所傳送的byte陣列的大小,我定義的就是1024長度的。

然後一邊拆包一邊傳送;

接收者就用同乙個檔案型別儲存接收的內容,一邊接收一邊解析出來;

最後重新整理自己的接收的專案,就會發現新生成了乙個檔案。

}接收

public class recive extends thread

public void run()

} catch (ioexception e)

}}

window下實現UDP通訊 大檔案傳輸

include include include include pragma comment lib,ws2 32.lib define bufsize 512 typedef struct packinfo typedef struct backinfo intserversocketinit 執...

linux下udp大檔案傳輸

近日小弟做了個linux下使用者資料報協議大檔案傳輸程式發上來與大家共勉。在 redhat 9.0 下編譯通過。最大測試無差錯傳輸檔案 288m 最大測試傳輸速度 6.5m s 可能這裡並不需要這種型別的帖子,但希望各位能代小弟轉貼,因為網路上很難搜尋到這種可以解決丟包問題的 級實現方法,希望每乙個...

socket程式設計實驗 UDP檔案傳輸

總是說udp不可靠,試試用udp寫了個檔案傳輸工具,順便熟悉一下python的檔案操作。測試一下確實不靠譜,檔案傳輸不穩定。如下 服務端 encoding utf 8 from socket import import os serverport 6666 serversocket socket a...