1. 程式人生 > >20165334 實驗五 網絡編程與安全

20165334 實驗五 網絡編程與安全

搭建服務器 沒有 des 監聽 .net 式表 編程思路 測試結果 字符

20165334 實驗五 網絡編程與安全

任務1

  1. 結對實現中綴表達式轉後綴表達式的功能 MyBC.java
  2. 結對實現從上面功能中獲取的表達式中實現後綴表達式求值的功能,調用MyDC.java
  3. 上傳測試代碼運行結果截圖和碼雲鏈接

    1、中綴變後綴思路分析

  • 設置一個運算符棧,設置一個後綴表達式字符串;
  • 從左到右依次對中綴表達式中的每個字符x分別進行以下處理,直至表達式結束:

?? - 若x是左括號‘(’,將其入棧;

??- 若x是數字,將其後連續若幹數字添加到後綴表達式字符串之後,並添加空格作為分隔符;

??- 若x是運算符,先將棧頂若幹優先級高於ch的運算符出棧,添加到後綴表達式字符串之後,再將ch入棧。當‘(’運算符在棧中時,它的優先級最低。

??- 若x是‘)’,則若幹運算符全部出棧,直到出棧的是左括號,一對括號匹配。

  • 若表達式結束,將棧中運算符全部出棧,添加到後綴表達式字符串之後。

    運行成功截圖

技術分享圖片

代碼鏈接

任務二

結對編程:1人負責客戶端,一人負責服務器

  1. 註意責任歸宿,要會通過測試證明自己沒有問題
  2. 基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
  3. 客戶端讓用戶輸入中綴表達式,然後把中綴表達式調用MyBC.java的功能轉化為後綴表達式,把後綴表達式通過網絡發送給服務器
  4. 服務器接收到後綴表達式,調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
  5. 客戶端顯示服務器發送過來的結果
  6. 上傳測試結果截圖和碼雲鏈接

    編程思路

    一、搭建服務器端

a)、創建ServerSocket對象綁定監聽端口。

b)、通過accept()方法監聽客戶端的請求。

c)、建立連接後,通過輸入輸出流讀取客戶端發送的請求信息。

d)、通過輸出流向客戶端發送請求信息。

e)、關閉相關資源。

二、搭建客戶器端

a)、創建Socket對象,指明需要連接的服務器的地址和端口。

b)、建立連接後,通過輸出流向服務器發送請求信息。

c)、通過輸入流獲取服務器的響應信息。

d)、關閉響應資源

運行截圖

技術分享圖片

代碼鏈接

任務三

加密結對編程:1人負責客戶端,一人負責服務器
  1. 註意責任歸宿,要會通過測試證明自己沒有問題
  2. 基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
  3. 客戶端讓用戶輸入中綴表達式,然後把中綴表達式調用MyBC.java的功能轉化為後綴表達式,把後綴表達式用3DES或AES算法加密後通過網絡把密文發送給服務器
  4. 服務器接收到後綴表達式表達式後,進行解密(和客戶端協商密鑰,可以用數組保存),然後調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
  5. 客戶端顯示服務器發送過來的結果

    運行截圖

技術分享圖片

任務四

密鑰分發結對編程:1人負責客戶端,一人負責服務器

  1. 註意責任歸宿,要會通過測試證明自己沒有問題
  2. 基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
  3. 客戶端讓用戶輸入中綴表達式,然後把中綴表達式調用MyBC.java的功能轉化為後綴表達式,把後綴表達式用3DES或AES算法加密通過網絡把密文發送給服務器
  4. 客戶端和服務器用DH算法進行3DES或AES算法的密鑰交換
  5. 服務器接收到後綴表達式表達式後,進行解密,然後調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
  6. 客戶端顯示服務器發送過來的結果

    運行截圖

技術分享圖片

任務五

網絡編程與安全-5

完整性校驗結對編程:1人負責客戶端,一人負責服務器

  1. 註意責任歸宿,要會通過測試證明自己沒有問題
  2. 基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP
  3. 客戶端讓用戶輸入中綴表達式,然後把中綴表達式調用MyBC.java的功能轉化為後綴表達式,把後綴表達式用3DES或AES算法加密通過網絡把密文和明文的MD5値發送給服務器
  4. 客戶端和服務器用DH算法進行3DES或AES算法的密鑰交換
  5. 服務器接收到後綴表達式表達式後,進行解密,解密後計算明文的MD5值,和客戶端傳來的MD5進行比較,一致則調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端
  6. 客戶端顯示服務器發送過來的結果
客戶端截圖

技術分享圖片

服務器截圖

技術分享圖片

試驗中遇到的問題

一定要先運行服務器後運行客戶端
錯誤:java.net.SocketException: Connection reset

這個問題讓我差點吐血,百度上說大多數是防火墻的問題,我關閉防火墻後依舊出現錯誤,最後換了個id和端口號後運行成功。

20165334 實驗五 網絡編程與安全