实验名称

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 2187 - 悼念512汶川大地震遇难同胞——老人是真饿了 - [大水题]

    讲真,这么水的题,我都不怎么好意思扔到博客上来,但是没办法啊,我总得证明一下今天上午我不是在寝室里瞎玩浪费掉的…… 思路就是,把米按单价从小到大排个序,便宜的买的越多越好,直到钱花光为止……我真的都不 ...

  2. IDEA2016.3搭建Struts2+Hibernate+Spring项目环境

    IDEA搭建SSH环境 1.环境 软件版本:IntelliJ IDEA 2016.3.2 系统:windows 7 32位 / ubuntu 框架:Hibernate3,Spring3.2, Stru ...

  3. MySQL权限和用户管理

    Mysql权限系统(由mysql权限表进行控制user和db)通过下面两个方面进行认证: 1)对于连接的用户进行身份验证,合法的通过验证,不合法的拒绝连接. 2)对于通过连接认证的用户,可以在合法的范 ...

  4. python3学习笔记(4)_function-参数

    #python学习笔记 17/07/10 # !/usr/bin/evn python3 # -*- coding:utf-8 -*- import math #函数 函数的 定义 #定义一个求绝对值 ...

  5. 97.394570112228 - Query OK, 1 row affected (43.05 sec) - the overhead of parsing and network communication

    mysql> create table w0904procedure (wa char, wb char, wd char, wi char); Query OK, rows affected ...

  6. Linux 下用 crontab 设置定时执行python 程序

    Linux 下用 crontab 设置定时执行python 程序 方法/步骤   1,先大概了解crontab,/etc/crontab 就是crontab 的配置文件. crontab命令详解可以查 ...

  7. 008-插件方式启动web服务tomcat,jetty

    一.pom引入 1.tomcat7 <!-- tomcat7 --> <plugin> <groupId>org.apache.tomcat.maven</g ...

  8. 编译错误 ----- /usr/bin/ld: cannot find -lc

    yum install glibc-static glib-static是Gcc链接时使用到的库.

  9. PAT 1019 General Palindromic Number[简单]

    1019 General Palindromic Number (20)(20 分) A number that will be the same when it is written forward ...

  10. unity3d-物理引擎

    简介 物理引擎就是在游戏中模拟真实的物理效果,比如,场景中有两个立方体对象,一个在空中,一个在地面上,在空中的立方体开始自由下落,然后与地面上的立方体对象发生碰撞,而物理引擎就是用来模拟真实碰撞的效果 ...