zoukankan      html  css  js  c++  java
  • 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%
  • 相关阅读:
    jianx vtritualbox 虚拟镜像的体积
    Warning:Configuration 'compile' is obsolete and has been replaced with 'implementation'. It will be
    厉害了,PS大神真的能改变世界!
    厉害了,他用PS不是P照片而是……
    清晰易懂!关于PS入门的超详细笔记!
    如何使用AE来制作烟雾粒子特效
    刷爆外网!中国天才设计师火到日本,30 张神仙海报看完真的服!
    大神你好,可以帮我P张图吗?
    拍照一分钟,修图两小时,PS大神是这样修片的!
    ui设计用什么软件
  • 原文地址:https://www.cnblogs.com/l-cat/p/5470918.html
Copyright © 2011-2022 走看看