java循环第四次处理_JAVA第四次实验
实 验 报 告
课程:Java 班级: 1352 姓名:黄坤 学号:20135226
成绩: 指导教师:娄嘉鹏 实验日期:2015.6.9
实验密级: 预习程度: 实验时间:15:30~18:00
仪器组次:26 必修/选修:选修 实验序号:04
实验名称: 网络编程与安全
实验目的与要求:
1.掌握Java网络编程的方法;
2.掌握Java安全编程的方法;
3.能综合使用各种技术。
实验仪器:
名称
型号
数量
计算机
2
实验内容:
1 编写网络通信程序(基于TCP)
2 对通信内容使用对称加密算法进行加密
3 使用非对称算法分发对称加密中使用的密钥
4 对通信内容进行摘要计算并验证
5 其他安全措施
相关代码
客户端:
package net;
import java.math.*;
import java.net.*;
import java.io.*;
public class tcpused {
public static void main(String srgs[]) {
try {
//创建连接特定服务器的指定端口的Socket对象
Socket socket = new Socket("10.0.6.143", 2224);
//获得从服务器端来的网络输入流
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//获得从客户端向服务器端输出数据的网络输出W流
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())), true);
//创建键盘输入流,以便客户端从键盘上输入信息eredWriter(new OutputStreamWriter(socket.getOutputStream())), true);
//创建键盘输入流
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入待发送的数据:");
String s = stdin.readLine(); //从键盘读入待发送的数据
String cs = new SEnc().enc(s);
System.out.println("发送到服务器的密文为:" + cs);
// String t=Read.read();
String ck = new Enc_RSA().Enc();
System.out.println("发送到服务器的加密秘钥为:" + ck);
String result = DigestCalc.hash(s);
out.println(ck);
out.println(cs); //通过网络传送到服务器
out.println(result);
} catch (Exception e) {
System.out.println(e);
} finally {
//stdin.close();
//in.close();
//out.close();
//socket.close();
}
}
}
服务器:
package net;
import java.net.*;
import java.io.*;
public class tcpuse {
public static void main(String srgs[]) throws Exception {
ServerSocket sc = null;
Socket socket = null;
try {
sc = new ServerSocket(2224);//创建服务器套接字
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 key = in.readLine();
System.out.println("从客户端收到的加密秘钥为:" + key);
byte[] keykb = new Dec_RSA().Dec(key);
String ctext = in.readLine();//读取客户端传送来的数据
System.out.println("从客户端收到的密文为:" + ctext);
String result=SDec.des(ctext, keykb);
String ha = in.readLine();
String sa = DigestCalc.hash(result);
boolean q = Compare.compare(sa, ha);
System.out.println("程序是否完整:" + q);
out.close();
in.close();
sc.close();
} catch (Exception e) {
System.out.println(e);
}
}
}
客户端:
服务端:
链接查看
统计时间
步骤
耗时(min)
百分比
需求分析
10
10%
设计
20
20%
代码实现
40
40%
测试
10
10%
分析总结
20
20%
二、实验中遇到的问题及其解决方法
在创建服务器后,客户端无法链接而出现的拒绝访问
解决方法:调整端点名保持一样
实验人员:
服务器 :20135226 黄坤
客户端 :20135326王亦可 http://www.cnblogs.com/baka/
三、实验体会
本次试验遇到一些困难,特别是编程方面,其他的都还好
java循环第四次处理_JAVA第四次实验相关推荐
- java循环导出word文档_Java使用freemarker导出word文档
通过freemarker,以及JAVA,导出word文档. 共分为三步: 第一步:创建模板文件 第二步:通过JAVA创建返回值. 第三步:执行 分别介绍如下: 第一步: 首先创建word文档,按照想要 ...
- java 数据类型转换的一场_Java基础 — 四类八种基本数据类型
整型:整数类型int 一般的数据. long 极大的数据. short 用于特定的场合,比如底层的文件处理或者需要控制占用存储单元空间量的大数组. byte 用于特定的场合,比如底层的文件处理或者需要 ...
- java+循环的时候用标签_java中循环标签的使用
标签: 以前不知道在循环中可以使用标签.最近遇到后,举得还是有其独特的用处的.我这么说的意思是说标签在循环中可以改变循环执行的流程.而这种改变不是我们以前单独使用break或者是continue能够达 ...
- java循环语句有哪三类_java中的循环语句有哪些
Java中有三种主要的循环结构: while 循环 do-while 循环 for 循环 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. 一.while循环 语 ...
- java中有哪些访问修饰符_java中四种访问修饰符
Java中的四种访问修饰符:public.protected.default(无修饰符,默认).private. 四种修饰符可修饰的成分(类.方法.成员变量) public protected def ...
- java循环单链表比较相等_java的循环单链表
packageclink;//循环单链表 public classTestClink {public static voidmain(String[] args) {//TODO Auto-gener ...
- java循环while之等差数列均值_java基础_while 循环语句的定义及用法
一.while 循环语句的定义 在 C 语言中,while 循环是除了 for 循环外最常用的循环语句. 相对于 for 循环而言,while 循环更多地应用于循环次数未定的循环控制中. while ...
- java循环队列判断为空_Java - 可循环队列
队列是一种特殊的线性表,是一种先进先出的数据结构.只允许在表的前端进行删除操作,在表的后端进行插入操作.进行插入操作的端称为队尾,进行删除操作的端称为队头.队列中没有元素时,称为空队列. 简单的循环队 ...
- java小游戏实训目的_Java弹球小游戏实验报告.doc
Java弹球小游戏实验报告 滨江学院 Java程序设计实验报告 题 目 弹球小游戏 姓 名 许浩 学 号 20112346064 学 院 滨江学院 专 业 网络工程 年 级 2011级 指导教师 张舒 ...
- java把分数区分ABCD四个等级_java编程输入成绩的英文等级abcd输出对应的中文等级优秀良好及格不及格...
int num=67;String str;if(num>=90){ str="优秀抄";}else if(num>=80){ str="优良袭"; ...
最新文章
- As3.0 一些好书连接
- SEO如何做会更受蜘蛛喜爱抓取,达到事半功倍的效果?
- 正确设置nginx/php-fpm/apache权限 提高网站安全性 防止被挂木马
- Hyper-V 虚拟机快照:常见问题
- rto净化效率计算公式_你了解废气处理设备RTO蓄热式热氧化炉的工作原理么?
- TD-SCDMA智能天线波束赋形能力的讨论
- win7系统图标异常修复方法
- 鼠标在某个控件上按下,然后离开后弹起,如何捕获这个鼠标弹起事件
- Hibernate 中upate,savaOrUpdate,merge的区别
- 移植gettimeofday
- pr2020lut导入_PS PR AE怎么批量导入LUTS调色预设
- 腾讯会议中用PPT放视频,视频没有声音
- wex5 tomcat配置php,WeX5 Tomcate 发布
- 颜色拾取器和红蜻蜓截图
- 发送候选文字到光标所在位置
- Ant工具 ant的安装与配置 ant作用
- 音视频SDK包-远程网络视频会议-在线远程教育-屏幕共享-电子白板-影音共享-在线直播等等都可以用
- 文本PDG文件名构成
- 给百度地图每个市添加颜色
- 优达棒球赛数据分析项目
热门文章
- Java数据结构——二叉树
- 使用bootstrap-table简化CRUD
- speex的基本编码和解码流程
- JS_简单倒计时_实例_格式:0 天 20 小时 48 分 54 秒
- array_filter移除空数组
- ugui 九宫格和图片切割
- Object中Equals和ReferenceEquals不解之谜
- 漫谈 Clustering (番外篇): Vector Quantization
- rpa打开浏览器_免费开源RPA财务机器人Taskt入门
- 拓端tecdat|matlab测量计算信号的相似度