導航:首頁 > 文件教程 > tcp接收文件

tcp接收文件

發布時間:2023-11-18 13:17:17

『壹』 TCP/IP 是怎樣傳輸數據文件

1、當你把要傳送的數據傳遞給TCP後,TCP把這些信息分成很多個數據包(這種數據包稱為TCP分組),每一個分組都包含有一個序號。接著TCP分組被傳遞給IP層,IP層把這個TCP分組放在一個IP數據包的數據部分。然後,這個IP數據包被傳到目的主機。目的主機
上的IP層,把IP數據包的數據部分(即TCP分組)傳遞給TCP層。TCP接收到分組後,檢查數據包的正確性,如果不正確,通知源計算機重新送該IP包。利用分組的序號來將數據按照原來的順序排列,然後送給應用層。換句話說,IP的工作是把原始數據(數據包)從一地傳送到另一地;TCP的工作是管理這種流動並確保其數據是正確的。在IP層,信息不是一個恆定的流,而是一個個小的數據包,這種數據包稱為IP數據報。所有要發送的信息都必須被拆成IP數據包,才能在IP網上傳送。IP數據報中最主要的內容有:源計算機的地址信息、目的計算機的地址信息、要傳輸的數據。當發送一個數據包時,計算機首先根據目的地址決定將其發送給誰,如果目的計算機與源計算機在同一個物理網路中,則直接將這個數據報發送給它。如果目的計算機與源計算機不在同一個物理網路中,則發送給路由器,路由器這個特殊的計算機連在了兩個網路之中,因此可以同時與兩個網路中的計算機通信。路由器在收到數據包後,根據目的地址決定是直接發給目的計算機(如果在同一個物理網路中),還是轉發給另一台計算機(如果不在同一個物理網路中)。

『貳』 socket TCP協議接收大文件時recv的buffer設置多少合適

tcp是數據流。
如果你第一次的recv不能接收全部數據,可以再次調用recv接收剩餘的版。
具體點:
你在發送的時權候可以把數據長度寫在前4個位元組,或者先發送數據長度過來。
接收的時候就能先知道數據長度,再動態分配內存,接收剩餘數據。

這是socket中非常常用的方法。

『叄』 如何通過Socket TCP發送並接收一個文件

主要是你通過socket api封裝要發送的數據,內部會自動封裝成數據流進行傳輸。
1,什麼是Socket
網路上的兩個程序通過一個雙向的通訊連接實現數據的交換,這個雙向鏈路的一端稱為一個Socket。Socket通常用來實現客戶方和服務方的連接。Socket是TCP/IP協議的一個十分流行的編程界面,一個Socket由一個IP地址和一個埠號唯一確定。
但是,Socket所支持的協議種類也不光TCP/IP一種,因此兩者之間是沒有必然聯系的。在java環境下,Socket編程主要是指基於TCP/IP協議的網路編程。
2,Socket通訊的過程
Server端Listen(監聽)某個埠是否有連接請求,Client端向Server 端發出Connect(連接)請求,Server端向Client端發回Accept(接受)消息。一個連接就建立起來了。Server端和Client 端都可以通過Send,Write等方法與對方通信。
對於一個功能齊全的Socket,都要包含以下基本結構,其工作過程包含以下四個基本的步驟:
(1) 創建Socket;
(2) 打開連接到Socket的輸入/出流;
(3) 按照一定的協議對Socket進行讀/寫操作;
(4) 關閉Socket.(在實際應用中,並未使用到顯示的close,雖然很多文章都推薦如此,不過在我的程序中,可能因為程序本身比較簡單,要求不高,所以並未造成什麼影響。)
3,創建Socket
創建Socket
java在包java.net中提供了兩個類Socket和ServerSocket,分別用來表示雙向連接的客戶端和服務端。這是兩個封裝得非常好的類,使用很方便。其構造方法如下:
Socket(InetAddress address, int port);
Socket(InetAddress address, int port, boolean stream);
Socket(String host, int prot);
Socket(String host, int prot, boolean stream);
Socket(SocketImpl impl)
Socket(String host, int port, InetAddress localAddr, int localPort)
Socket(InetAddress address, int port, InetAddress localAddr, int localPort)
ServerSocket(int port);
ServerSocket(int port, int backlog);
ServerSocket(int port, int backlog, InetAddress bindAddr)

Socket client = new Socket("127.0.01.", 80);
ServerSocket server = new ServerSocket(80);

在創建socket時如果發生錯誤,將產生IOException,在程序中必須對之作出處理。所以在創建Socket或ServerSocket是必須捕獲或拋出例外。

閱讀全文

與tcp接收文件相關的資料

熱點內容
壓縮完了文件去哪裡找 瀏覽:380
武裝突襲3浩方聯機版本 瀏覽:674
網路機頂盒移動網路 瀏覽:391
iphone手機百度雲怎麼保存到qq 瀏覽:148
資料庫設計與實踐讀後感 瀏覽:112
js對象是什麼 瀏覽:744
網頁文件存pdf 瀏覽:567
文件夾正裝 瀏覽:279
剛復制的文件找不到怎麼辦 瀏覽:724
試運行適用於哪些體系文件 瀏覽:987
ghost文件復制很慢 瀏覽:967
傑德原車導航升級 瀏覽:240
編程dest是什麼意思 瀏覽:935
linux埠鏡像 瀏覽:820
iphone5屏幕清塵 瀏覽:157
機頂盒密碼怎麼改 瀏覽:672
w7系統下載32位教程 瀏覽:618
pcb文件包括哪些內容 瀏覽:598
g00文件 瀏覽:607
用bat程序刪除程序 瀏覽:516

友情鏈接