zoukankan      html  css  js  c++  java
  • 20145105 《Java程序设计》实验五总结

    实验五 JAVA网络编程

    一、实验内容

    1. 用老师给的代码,实现服务器和客户端

    2. 和结对同学实现服务器与客户端的连接

    3. 客户端输入数据并加密,将密文发送给服务器,服务器接收密文并解密

    二、实验步骤

    1. 用老师给的代码,实现服务器和客户端
    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(4000);
                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);
            }
        }
    }
    
    1. 和结对同学实现服务器与客户端的连接

    1. 客户端输入数据并加密,将密文发送给服务器,服务器接收密文并解密
    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("E:\study\JAVA\ideaWork\20145105exp5\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. 在连接时客户端一方总是提示连接超时

      解决过程:在对比ipcongfig命令查看到的所有连接情况后,我们发现写错了IP地址,即连接的是WI-FI,但写的是本地连接的IP,修改后可以连接

    2. 调用RSA加密代码文件时,总是提示找不到指定文件

      解决过程:将调用方法中的文件名改为文件路径,强制读取该文件

    结对同学博客地址:传送门

    五、PSP

    | 步骤 | 耗时 | 百分比 |
    | 需求分析 | 20min | 16.67% |
    | 设计 | 20min | 16.67% |
    | 代码实现 | 40min | 33.33% |
    | 测试 | 10min | 8.33% |
    | 分析总结 | 30min | 25% |

  • 相关阅读:
    artdialog4.1.7 中父页面给子页面传值
    Sql Server按树形结构排序查询表记录
    js控制滚动条平滑滚动到制定位置
    sql实现对多个条件分组排序方法和区别
    css渐变颜色在线制作
    c#中文转全拼或首拼
    Aspose Cells 添加数据验证(动态下拉列表验证)
    jQuery 插件autocomplete
    导出excel时,以form方式提交json数据
    asp.Net2.0中TextBox设置只读后后台获取不到值的解决方法
  • 原文地址:https://www.cnblogs.com/schwarizard/p/5471820.html
Copyright © 2011-2022 走看看