0145129實驗報告(五)

20145129實驗報告(五)

實驗目的

  • TCP方式進行網絡通信,實現服務器與客戶端。
  • 客戶端與服務器鏈接,並實現數據交互。java

    實驗內容

    (一)實現服務器

  • 本次試驗,小組中我作服務器。
  • 我將加密算法新建了一個類並和服務器的類打包在一塊兒。
  • 服務器實現
package Server;
import java.net.*;
import java.io.*;
public class ComputeTCPServer{
    public static void main(String srgs[]) {
        ServerSocket sc = null;
        Socket socket=null;
        try {
            sc= new ServerSocket(4421);
            System.out.println("已開啓端口:" + sc.getLocalPort());
            System.out.println("等待客戶機鏈接...");
            socket = sc.accept();
            System.out.println("已鏈接到到客戶機");
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
            String   aline=in.readLine();
            System.out.println("已加密數據:"+aline);
            Dec_RSA decode=new Dec_RSA(aline);
            aline=decode.decodestring;
            System.out.println("接收到客戶機消息:"+aline);
            out.println("Echo:" + aline);
            out.close();
            in.close();
            sc.close();
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}
  • 加密算法
package Server;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.math.BigInteger;
import java.security.interfaces.RSAPrivateKey;
public class Dec_RSA{
    public String decodestring="";
    public Dec_RSA(String ctext) throws Exception{
        BigInteger c=new BigInteger(ctext);
        FileInputStream f=new FileInputStream("Skey_RSA_priv.dat");
        ObjectInputStream b=new ObjectInputStream(f);
        RSAPrivateKey prk=(RSAPrivateKey)b.readObject( );
        BigInteger d=prk.getPrivateExponent();
        BigInteger n=prk.getModulus();
        BigInteger m=c.modPow(d,n);
        byte[] mt=m.toByteArray();
        for(int i=0;i<mt.length;i++){
            decodestring+=(char)(mt[i]);
        }


    }
}

(二)實現客戶端

  • 如下爲組員博客連接:算法

    (三)創建鏈接併發送明文(有加密)

  • 如圖:安全

    體會

  • 一、不太理解爲何用logic後的IP4,不過在解決下面一個問題後好像有些明白了。
  • 二、中途服務器與客戶端連不上,用的手機熱點,後來想起電腦能夠手動建立局域網具體操做以下:
    • 打開網絡和共享中心->管理無線網絡->添加->建立臨時網絡->填寫網絡名和安全密鑰->下一步->建立成功

- 右鍵建立的網絡查看屬性,能夠看到IP地址爲IP4(上文圖中可見)

PSP

步驟 耗時 百分比
需求分析 5分鐘 6.25%
設計 20分鐘 25%
代碼實現 20分鐘 25%
測試 25分鐘 31.25%
分析總結 10分鐘 12.5%
相關文章
相關標籤/搜索