0145129实验报告(五)

20145129实验报告(五)

实验目的

  • TCP方式进行网络通讯,实现服务器与客户端。
  • 客户端与服务器连接,并实现数据交互。

实验内容

(一)实现服务器

  • 本次试验,小组中我做服务器。
  • 我将加密算法新建了一个类并和服务器的类打包在一起。
  • 服务器实现
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]);
        }


    }
}

(二)实现客户端

  • 以下为组员博客链接:

(三)建立连接并发送明文(有加密)

  • 如图:

体会

  • 1、不太理解为什么用logic后的IP4,不过在解决下面一个问题后好像有些明白了。
  • 2、中途服务器与客户端连不上,用的手机热点,后来想起电脑可以手动创建局域网具体操作如下:
    • 打开网络和共享中心->管理无线网络->添加->创建临时网络->填写网络名和安全密钥->下一步->创建成功

- 右键创建的网络查看属性,可以看到IP地址为IP4(上文图中可见)

PSP

步骤 耗时 百分比
需求分析 5分钟 6.25%
设计 20分钟 25%
代码实现 20分钟 25%
测试 25分钟 31.25%
分析总结 10分钟 12.5%
posted @ 2016-05-08 16:40  20145129  阅读(144)  评论(1)    收藏  举报