java學習路程之網路程式設計 TCP UDP

2021-08-29 02:48:43 字數 2502 閱讀 9890

public class demo01 

}

1.tcp協議

tcp協議是面向連線的通訊協議,即在傳輸資料前先在傳送端和接收端建立邏輯連線,然後再傳輸資料,它提供了兩台計算機之間可靠無差錯的資料傳輸。在tcp連線中必須要明確客戶端與伺服器端,由客戶端向服務端發出連線請求,每次連線的建立都需要經過「三次握手」。第一次握手,客戶端向伺服器端發出連線請求,等待伺服器確認,第二次握手,伺服器端向客戶端回送乙個響應,通知客戶端收到了連線請求,第三次握手,客戶端再次向伺服器端傳送確認資訊,確認連線。

2.tcp/ip協議組的層次結構

1).鏈路層:鏈路層是用於定義物理傳輸通道,通常是對某些網路連線裝置的驅動協議,例如針對光纖、網線提供的驅動。

2).網路層:網路層是整個tcp/ip協議的核心,它主要用於將傳輸的資料進行分組,將分組資料傳送到目標計算機或者網路。

3).傳輸層:主要使網路程式進行通訊,在進行網路通訊時,可以採用tcp協議,也可以採用udp協議。

4).應用層:主要負責應用程式的協議,例如http協議、ftp協議等。

3.埠號:

通過ip位址可以連線到指定計算機,但如果想訪問目標計算機中的某個應用程式,還需要指定埠號。在計算機中,不同的應用程式是通過埠號區分的。埠號是用兩個位元組(16位的二進位制數)表示的,它的取值範圍是0-65535,其中,0~1023之間的埠號用於一些知名的網路服務和應用,使用者的普通應用程式需要使用1024以上的埠號,從而避免埠號被另外乙個應用或服務所占用。

客戶端

public class clienttcp 

}}

服務端

public class servertcp 

}}

1.udp協議接收端實現步驟:

public class udpreceive 

}}

傳送端實現的步驟:

public class udpsend 

}}

上傳

客戶端:

public class uploadclient 

// 檔案讀取完之後,呼叫socket的shutdownoutput(),可以讀取到-1

client.shutdownoutput();

// 讀取伺服器回寫的資料

inputstream is = client.getinputstream();

len = is.read(data);

string msg = new string(data, 0, len);

system.out.println("回寫的資料");

fis.close();

is.close();

os.close();

bis.close();

client.close();

}}

服務端:

public class uploadserver 

// 回寫資料告訴客戶端上傳成功

outputstream os = client.getoutputstream();

os.write("上傳成功".getbytes());

// 關閉流

is.close();

bos.close();

os.close();

client.close();

}}

■傳送端

1,建立datagramsocket物件

2,建立datagrampacket物件,並封裝資料

3,傳送資料

4,釋放流資源

■接收端

1,建立datagramsocket物件

2,建立datagrampacket物件

3,接收資料儲存到datagrampacket物件中

4,獲取datagrampacket物件的內容

5,釋放流資源

●tcp程式互動的流程

■客戶端

1,建立客戶端的socket物件

2,獲取socket的輸出流物件

3,寫資料給伺服器

4,獲取socket的輸入流物件

5,使用輸入流,讀反饋資訊

6,關閉流資源

■伺服器端

1,建立伺服器端serversocket物件,指定伺服器端埠號

2,開啟伺服器,等待著客戶端socket物件的連線,如有客戶端連線,返回客戶端的socket物件

3,通過客戶端的socket物件,獲取客戶端的輸入流,為了實現獲取客戶端發來的資料

4,通過客戶端的輸入流,獲取流中的資料

5,通過客戶端的socket物件,獲取客戶端的輸出流,為了實現給客戶端反饋資訊

6,通過客戶端的輸出流,寫資料到流中

7,關閉流資源

Java學習路程之第三天

一.do while迴圈 1.結構 dowhile 判斷條件 do while迴圈的特點是不管判斷條件是否成立先執行一遍迴圈體.public class demo01while num 10 2.練習 從星期1開始列印 並詢問明天上班不 輸入上班 繼續列印 輸入不上班 停止程式 int num1 1...

Java學習路程之Filter 過濾器

1.含義 過濾器是處於客戶端與伺服器資源檔案之間的一道過濾網,在訪問資源檔案之前,通過一系列的過濾器對請求進行修改 判斷等,把不符合規則的請求在中途攔截或修改。也可以對響應進行過濾,攔截或修改響應。2.作用 自動登入 統一編碼 過濾關鍵字 3.編寫filter步驟 1 編寫乙個類實現filter介面...

java網路程式設計之SOCKET

建立物件的時候就會建立連線 try socket socket new socket time.nist.gov 13 catch ioeception ex 可選的 socket.setsotimeout 150000 從socket中讀取資料 inputstream in socket.geti...