20165309 實驗五 網絡編程與安全

2017-2018-2 20165309實驗五《Java面向對象程序設計》實驗報告

1、實驗原理

1.棧的應用

  • 後綴式的運算規則爲:運算符在式中出現的順序恰爲表達式的運算順序;每一個運算符和在它以前出現且緊靠它的兩個操做數構成一個最小表達式。
  • 由中綴式求得後綴式可使用棧,僞代碼以下:
    • 設立一個棧,存放運算符,首先棧爲空;
    • 從左到右掃描中綴式,若遇到操做數,直接輸出,並輸出一個空格做爲兩個操做數的分隔符;
    • 若遇到運算符,則與棧頂比較,比棧頂級別高則進棧,不然退出棧頂元素並輸出,而後輸出一個空格做分隔符;
    • 若遇到左括號,進棧;若遇到右括號,則一直退棧輸出,直到退到左括號止。
    • 當棧變成空時,輸出的結果即爲後綴表達式。
  • Linux下dc的運算符:
    • +: 依次彈出w1與w2,將w2+w1壓棧。精度爲結果值精度
    • -: 依次彈出w1與w2,將w2-w1壓棧
    • *: 依次彈出w1與w2,將w2*w1壓棧。精度爲結果值精度與precision中較大值
    • /: 依次彈出w1與w2,將w2/w1壓棧。精度爲precision

2.套接字

  • 網絡套接字是基於TCP協議的有鏈接通訊。
  • 套接字鏈接就是客戶端的套接字對象和服務器端的套接字對象經過輸入流、輸出流鏈接在一塊兒。
  • 服務器創建ServerSocket對象,ServerSocket對象負責等待客戶端請求創建套接字鏈接,而客戶端創建Socket對象向服務器發出套接字鏈接請求。
  • 要建立一個套接字,可使用Socket的構造方法,如:public Socket(java.lang.String host, int port)。其中,host是遠程機器名或IP地址,port是遠程應用程序的端口號。

3.Java 密碼學算法

2、實驗內容

1.網絡編程與安全-1

結對實現中綴表達式轉後綴表達式的功能 MyBC.javahtml

結對實現從上面功能中獲取的表達式中實現後綴表達式求值的功能,調用MyDC.javajava

  • 測試代碼運行結果以下

2.網絡編程與安全-2

基於Java Socket實現客戶端/服務器功能,傳輸方式用TCPgit

客戶端讓用戶輸入中綴表達式,而後把中綴表達式調用MyBC.java的功能轉化爲後綴表達式,把後綴表達式經過網絡發送給服務器算法

服務器接收到後綴表達式,調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端編程

客戶端顯示服務器發送過來的結果數組

  • 客戶端
  • 服務器

3.網絡編程與安全-3

基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP安全

客戶端讓用戶輸入中綴表達式,而後把中綴表達式調用MyBC.java的功能轉化爲後綴表達式,把後綴表達式用3DES或AES算法加密後經過網絡把密文發送給服務器服務器

服務器接收到後綴表達式表達式後,進行解密(和客戶端協商密鑰,能夠用數組保存),而後調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端網絡

客戶端顯示服務器發送過來的結果測試

  • 客戶端
  • 服務器

4.網絡編程與安全-4

基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP

客戶端讓用戶輸入中綴表達式,而後把中綴表達式調用MyBC.java的功能轉化爲後綴表達式,把後綴表達式用3DES或AES算法加密經過網絡把密文發送給服務器

客戶端和服務器用DH算法進行3DES或AES算法的密鑰交換

服務器接收到後綴表達式表達式後,進行解密,而後調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端

客戶端顯示服務器發送過來的結果

  • 客戶端
  • 服務器

5.網絡編程與安全-5

基於Java Socket實現客戶端/服務器功能,傳輸方式用TCP

客戶端讓用戶輸入中綴表達式,而後把中綴表達式調用MyBC.java的功能轉化爲後綴表達式,把後綴表達式用3DES或AES算法加密經過網絡把密文和明文的MD5値發送給服務器

客戶端和服務器用DH算法進行3DES或AES算法的密鑰交換

服務器接收到後綴表達式表達式後,進行解密,解密後計算明文的MD5值,和客戶端傳來的MD5進行比較,一致則調用MyDC.java的功能計算後綴表達式的值,把結果發送給客戶端

客戶端顯示服務器發送過來的結果

  • 客戶端
  • 服務器

代碼連接

3、實驗中遇到的問題及解決

  • 問題:報錯以下
  • 解決:換個別的端口號。

4、實驗收穫

我在本次結對實驗中負責的部分是服務器,整個實驗的過程對我來講極爲艱難,不得不在借鑑了不少學長學姐的博客和依賴大量的百度下得以完成,拖慢告終對夥伴的進度...總而言之,好好看書,十三章很重要。

步驟 耗時 百分比
需求分析 20min 7.4
設計 60min 22.2
代碼實現 120min 44.4
測試 40min 14.9
分析總結 30min 11.1
相關文章
相關標籤/搜索