实验名称

Java网络编程

实验内容

1.掌握Socket程序的编写;

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

3.设计安全传输系统。

结对小伙伴

20145120黄玄曦 博客地址:http://www.cnblogs.com/20145120hxx/p/5470921.html

实验步骤

1.我负责客户端,然后和结对小伙伴先匹配成功再将老师给的凯撒密码算法进行修改,编写代码实现。代码如下:

package experiment;

/**
* Created by lenovo on 2016/5/6.
*/
import java.io.*;
import java.net.*;
import java.util.*; public class Client {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
Socket socket = null;
InputStream is = null;
OutputStream os = null;
//服务器端IP地址
String serverIP = "222.28.131.142";
//服务器端端口号
int port = 10000;
//发送内容
String data;
String m[] = new String[2];
System.out.println("请输入明文:");
m[0] = scanner.nextLine();
System.out.println("请输入加密密钥");
m[1] = scanner.nextLine();
data = Caesar.main(m);
try {
//建立连接
socket = new Socket(serverIP,port);
//发送数据
os = socket.getOutputStream();
os.write(data.getBytes());
//接收数据
is = socket.getInputStream();
byte[] b = new byte[1024];
int n = is.read(b);
//输出反馈数据
System.out.println("服务器反馈:" + new String(b,0,n));
} catch (Exception e) {
e.printStackTrace(); //打印异常信息
}finally{
try {
//关闭流和连接
is.close();
os.close();
socket.close();
} catch (Exception e2) {}
}
}
}

然后进行加密



接下来接收到了服务器的反馈

2.这里我还是客户端。我们对娄老师给的RSA算法进行修改,然后编写代码实现,代码如下:

package experiment5;
import java.net.*;
import java.io.*;
import java.util.Scanner; public class Client1{
public static void main(String srgs[]) throws Exception {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入明文:");
String m = scanner.nextLine();
String cs;
cs = Enc_RSA.main(m);
try {
//创建连接特定服务器的指定端口的Socket对象
Socket socket = new Socket("222.28.131.142",14512);
//获得从服务器端来的网络输入流
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//获得从客户端向服务器端输出数据的网络输出流
PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
//创建键盘输入流,以便客户端从键盘上输入信息
//BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in)); out.println(cs); //通过网络传送到服务器
cs = in.readLine();//从网络输入流读取结果
System.out.println( "从服务器接收到的结果为:"+ cs); //输出服务器返回的结果
}
catch (Exception e) {
System.out.println(e);
}
finally{
//stdin.close();
//in.close();
//out.close();
//socket.close();
}
}
}

输入明文进行加密,接收到了服务器的反馈:

实验总结

在实现RSA算法的时候出现了错误,找不到指定文件,后来将Skey_RSA_priv.dat和Skey_RSA_pub.dat两个文件放到与SRC同级的文件夹中问题才得到解决。还有我们要匹配的话需要连接到另一个小伙伴的wifi上才行。总而言之实验过程比较顺利。

实验代码托管截图

统计的PSP(Personal Software Process)时间

步骤 耗时 百分比
需求分析 1h 12.5%
设计 1h 12.5%
代码实现 3h 37.5%
测试 1h 12.5%
分析总结 2h 25.0%

20145122《 Java网络编程》实验五实验报告的更多相关文章

  1. 20145211 《Java程序设计》实验报告五————Java网络编程及安全实验报告

    实验内容 1.掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验步骤 这一部分是与我的partner合作的,详见他的博客- [20145326 <Java程序设计> ...

  2. 20155227 《Java程序设计》实验五 Java网络编程及安全实验报告

    20155227 <Java程序设计>实验五 Java网络编程及安全实验报告 实验内容 任务一: 编写MyBC.java实现中缀表达式转后缀表达式的功能. 编写MyDC.java实现从上面 ...

  3. 20155305 2016-2017-2 《Java程序设计》 实验五 Java网络编程及安全实验报告

    20155305 2016-2017-2 <Java程序设计> 实验五 Java网络编程及安全实验报告 实验内容 1.掌握Socket程序的编写. 2.掌握密码技术的使用. 3.设计安全传 ...

  4. 20145219 《Java程序设计》实验五 Java网络编程及安全实验报告

    20145219 <Java程序设计>实验五 Java网络编程及安全实验报告 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 实验步骤 我和2 ...

  5. 实验五 Java网络编程及安全 实验报告 20135232王玥

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序与设计         班级:1352 姓名:王玥 学号:20135232 成绩:             指导 ...

  6. Java 网络编程(五) 使用TCP/IP的套接字(Socket)进行通信

    链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/10/2952616.html 使用TCP/IP的套接字(Socket)进行通信 套接字Socke ...

  7. 20145326 《Java程序设计》实验五——Java网络编程及安全实验报告

    实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 实验步骤 我和20145211黄志远http://www.cnblogs.com/nostalgia-/组 ...

  8. java 网络编程(五)Socket多线程上传文件

    客户端: package cn.sasa.socketUploadFileDemo; import java.io.FileInputStream; import java.io.IOExceptio ...

  9. 如何使用socket进行java网络编程(五)

    本篇记录: 1.再谈readLine()方法 2.什么是真正的长连接 最近又参与了一个socket的项目,又遇到了老生常谈的readLine()问题:对方通过其vb程序向我方socketServer程 ...

  10. java 网络编程(五)----TCP进阶篇上传文本文件

    设计需求:从客户端上传txt文件到服务器,服务端收到文件后,发送消息给客户端接收完成. 1. 服务器端: public class UpLoadFileServer { public static v ...

随机推荐

  1. HDU 5727 - Necklace - [全排列+二分图匹配][Hopcroft-Karp算法模板]

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5727 Problem DescriptionSJX has 2*N magic gems. ...

  2. XTU 1261 - Roads - [最小割][2017湘潭邀请赛B题(江苏省赛)]

    之前在网上搜了一个下午没搜到这道题的题解,然后同时又对着叉姐写的两行字题解看了一个下午: 虽然基本上已经知道了这题的思路,但愣是因为自己代码实现起来太繁复,外加不确定正确性,没敢码…… 但是一道题肝了 ...

  3. ArcGIS earth 1.0 beta体验报告——给我一个按钮我将转动整个地球

    随着Esri研发中心的ArcGIS earth 1.0 beta版本的全新发布,声势浩大,很多人为之好奇静待观摩其阵容.抽出五分钟体验,良心用户,必得出炉一份体验报告了. -------------- ...

  4. LoadRunner-参数化(参数间关联)

    多用户测试,每个用户账号对应一个密码,账号和密码需要一 一关联才能登录成功. 1.在已经对账号进行参数化后,选中密码的值->右键选择Replace with a Parameter,参数名为pa ...

  5. 知道椭圆长轴,短轴长度,ab直线的长度知道且垂直于长轴。求ab的弧长。

    1:知道椭圆长轴,短轴长度,ab直线的长度知道且垂直于长轴.求ab的弦长.: https://jingyan.baidu.com/article/a378c960a5af27b3282830e6.ht ...

  6. POJ2983 Is the Information Reliable?

    http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=267#problem/B                        B -  ...

  7. 浙大 PAT 乙级 1001-1075 目录索引

    1001. 害死人不偿命的(3n+1)猜想 1002. 写出这个数 1003. 我要通过! 1004. 成绩排名 1005. 继续(3n+1)猜想 1006. 换个格式输出整数 1007. 素数对猜想 ...

  8. PAT 1028 List Sorting[排序][一般]

    1028 List Sorting (25)(25 分) Excel can sort records according to any column. Now you are supposed to ...

  9. 我的sublime 插件配置

    一个插件就是一个软件 ,这就是sublime的理念 . 1.Packag control 给sublime配置插件当然少不了Package control ,首先安装 Package control ...

  10. stdcall cdecl

    一.stdcall windows API采用的都是这种方式 1.参数入栈由右向左 2.栈平衡由被调用者处理 二.cdcel C语言库采用的都是这种方式 1.参数入栈由右向左 2.栈平衡由调用者处理 ...