TCP網路程式設計

2022-09-09 09:54:14 字數 3616 閱讀 3440

目錄

tcp網路程式設計練習

練習一:客戶端傳送資訊給服務端,服務端將資料顯示在控制台上。

客戶端:

服務端練習二:客戶端傳送檔案給伺服器,服務端將檔案儲存在本地。

客戶端:

服務端:

練習三:在案例二的基礎上,接收成功後,返回給客戶端,接收成功!然後客戶端才關閉連線!

客戶端:

服務端:

com.kou.lesson2;

import

j**a.io.ioexception;

import

j**a.io.outputstream;

import

j**a.net.inetaddress;

import

j**a.net.socket;

import

j**a.net.unknownhostexception;

//客戶端

public

class

tcpclientdemo01

catch

(unknownhostexception e)

catch

(ioexception e)

finally

if (socket!=null)}

catch

(ioexception e) }}

}com.kou.lesson2;

import

j**ax.sound.midi.soundbank;

import

j**a.io.bytearrayoutputstream;

import

j**a.io.ioexception;

import

j**a.io.inputstream;

import

j**a.net.serversocket;

import

j**a.net.socket;

import

j**a.util.base64;

//服務端

public

class

tcpserverdemo01 **/

baos = new

bytearrayoutputstream();

byte buffer = new

byte[1024];

intlen;

while ((len=is.read(buffer))!=-1)

system.out.println(baos.tostring());

system.out.println(

} catch

(ioexception e)

finally

if (is!=null

)if (accept!=null

)if (serversocket!=null)}

catch

(exception e)}}

}com.kou.lesson3;

import

j**a.io.file;

import

j**a.io.fileinputstream;

import

j**a.io.outputstream;

import

j**a.net.inetaddress;

import

j**a.net.socket;

//客戶端

public

class

tcpclientdemo02

//5. 資源關閉,應該使用 try-catch-finally

fis.close();

os.close();

socket.close();}}

點選並拖拽以移動

com.kou.lesson3;

import j**a.io.*;

import

j**a.net.serversocket;

import

j**a.net.socket;

//服務端

public

class

tcpserverdemo02

//5.關閉資源,應該使用 try-catch-finally

fos.close();

is.close();

socket.close();

serversocket.close();}}

啟動服務端,啟動客戶端,接收成功!

com.kou.lesson4;

import j**a.io.*;

import

j**a.net.inetaddress;

import

j**a.net.socket;

//客戶端

public

class

tcpclientdemo03

//告訴伺服器,我傳輸完了,關閉資料的輸出,不然就會一直阻塞!

socket.shutdownoutput();

//先別關,等待伺服器響應,響應到控制台

inputstream inputstream =socket.getinputstream();

bytearrayoutputstream baos = new

bytearrayoutputstream();

byte buffer2 = new

byte[1024];

intlen2;

while ((len2=inputstream.read(buffer2))!=-1)

system.out.println(baos.tostring());

//5. 資源關閉,應該使用 try-catch-finally

baos.close();

inputstream.close();

fis.close();

os.close();

socket.close();}}

com.kou.lesson4;

import

j**a.io.file;

import

j**a.io.fileoutputstream;

import

j**a.io.inputstream;

import

j**a.io.outputstream;

import

j**a.net.serversocket;

import

j**a.net.socket;

//服務端

public

class

tcpserverdemo03

//通知客戶端接收成功

outputstream outputstream =socket.getoutputstream();

outputstream.write("檔案已經成功收到".getbytes());

//5.關閉資源,應該使用 try-catch-finally

outputstream.close();

fos.close();

is.close();

socket.close();

serversocket.close();}}

TCP網路程式設計

基於tcp 通訊模型 由上圖可以得出tcp通訊的步驟如下 服務端 1 建立乙個socket,用函式socket 2 繫結ip位址 埠等資訊到socket上,用函式bind 3 設定允許的最大連線數,用函式listen 4 等待來著客戶端的連線請求,用函式accept 5 收發資料,用函式send 和...

網路程式設計 TCP

客戶端 1.建立客戶端的socket服務,指定目的主機和埠 2.為了傳送資料,應該獲取socket中的輸出流 3.獲取socket中的輸入流來獲取服務端的反饋資料 4.關閉資源 服務端 1.建立服務端的serversocket服務,並監聽乙個埠 2.通過accept方法 等待並獲取連線過來的客戶端s...

網路程式設計 TCP

即有傳送緩衝區 接收緩衝區,傳送次數和接收次數不一定對等。報頭長,成本高,需要搭載更多的資料。1.三次握手 通過對ack的確認,建立可靠連線。有超時重傳機制 2.四次揮手 有可能伺服器處理資料的時間較短,即三次揮手 3.狀態圖 2 保證遲來的資料報能被識別並丟棄 4.tcp狀態轉移過程 5.tcp報...