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

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

实验名称:Java网络编程

实验内容:

1.掌握Socket程序的编写;

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

3.设计安全传输系统。

实验内容、步骤

PSP

步骤耗时百分比
需求分析0.510%
设计120%
代码实现2.550%
测试0.510%
分析总结0.510%

实验步骤

这次我还是和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){}
        }
    }
}

运行结果:
885218-20160508163338687-1928249111.png
---
885218-20160508163351890-1590463422.png

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

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);
        }
    }
}

运行结果:
885218-20160508163932265-2053902442.png

实验中遇到的问题

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

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

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

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

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

git截图

885218-20160508165153687-263810598.png

参考资料

转载于:https://www.cnblogs.com/20145120hxx/p/5470921.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值