• 20145120 《Java程序设计》实验五实验报告


    20145120 《Java程序设计》实验五实验报告

    实验名称:Java网络编程

    实验内容:

    1.掌握Socket程序的编写;

    2.掌握密码技术的使用;

    3.设计安全传输系统。

    实验内容、步骤

    PSP

    步骤 耗时 百分比
    需求分析 0.5 10%
    设计 1 20%
    代码实现 2.5 50%
    测试 0.5 10%
    分析总结 0.5 10%

    实验步骤

    这次我还是和20145122程智崟组队,我负责服务器,程智崟负责客户端。

    我们先从简单的开始尝试,客户端和服务器从火之光博客最简单的那个改进,再对老师给的凯撒密码进行修改,使得它在客户端和服务器的程序里可以传值调用

    package experiment.experiment5;
    
    /**
     * Created by lenovo on 2016/5/6.
     */
    import java.io.*;
    import java.net.*;
    import java.util.Scanner;
    
    public class Server {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            ServerSocket serverSocket = null;
            Socket socket = null;
            OutputStream os = null;
            InputStream is = null;
            //监听端口号
            int port = 10000;
            try {
                //建立连接
                serverSocket = new ServerSocket(port);
                //获得连接
                socket = serverSocket.accept();
                //接收客户端发送内容
                is = socket.getInputStream();
                byte[] b = new byte[1024];
                int n = is.read(b);
                //输出
                System.out.println("客户端发送内容为:" + new String(b,0,n));
    
                String m[] = new String[2];
                m[0] = new String(b,0,n);
                System.out.println("请输入解密密钥:");
                m[1] = scanner.nextLine();
                String data = Caesar.main(m);
    
                //向客户端发送反馈内容
                os = socket.getOutputStream();
                os.write(data.getBytes());
            } catch (Exception e) {
                e.printStackTrace();
            }finally{
                try{
                    //关闭流和连接
                    os.close();
                    is.close();
                    socket.close();
                    serverSocket.close();
                }catch(Exception e){}
            }
        }
    }
    

    运行结果:

    成功之后我们再尝试了使用RSA算法,这次客户端、服务器等都是在老师给的程序的基础上修改的
    先试一下修改是否达到预定效果


    然后修改好程序,运行

    package experiment.experiment5;
    
    /**
     * Created by lenovo on 2016/5/8.
     */
    import java.net.*;
    import java.io.*;
    public class Server1{
        public static void main(String srgs[]) {
            ServerSocket sc = null;
            Socket socket=null;
            try {
                sc= new ServerSocket(14512);//创建服务器套接字
                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);
                String m = Dec_RSA.main(aline);
                //通过网络输出流返回结果给客户端
                out.println("Echo:" + m);
                out.close();
                in.close();
                sc.close();
            } catch (Exception e) {
                System.out.println(e);
            }
        }
    }
    

    运行结果:

    实验中遇到的问题

    1.我打开实验五发现是实验楼主页,一开始不明所以,做完了才知道我没加java的私有课程

    2.开始的时候对调用其他类的函数还不熟悉,写的是Caesar(),后来才想到是Caesar.main()

    3.本来想试试DES的,但是找不到DES在哪里

    4.一开始以为客户端和服务器需要两台机,后来发现一台也可以的

    5..bat原来不是和.java在一起的,是要放project第一层里的

    git截图

    参考资料

  • 相关阅读:
    浅谈自动化测试
    Linux cron定时介绍
    Python上下文管理器
    Robot Framework robot命令
    Web自动化测试之playwright:设置浏览器语言
    Python文件及目录处理方法
    2021google开发者大会
    linux环境变量设置小结
    Eclipse快捷键
    java计时 小计
  • 原文地址:https://www.cnblogs.com/20145120hxx/p/5470921.html
Copyright © 2020-2023  润新知