java-socket简单编程(socket C/S md5文件验证或完整性度量)

本文介绍如何使用Java Socket进行文件传输的完整性校验,通过MD5码实现客户端和服务端的数据验证。服务端分别发送文件和MD5码,客户端接收后进行分离并校验。
摘要由CSDN通过智能技术生成

今天接着上次的更新,按照项目的第二个要求,我们需要完成客户端对服务端发送文件的验证问题,即完整性度量问题。

我们直接上代码。

这里我一律不给出import毕竟都是java的基本库,自己导一下

1.客户端:

public class MyClient {

	public static void main(String[] args) {
		try {
			//创建Socket对象
			Socket socket=new Socket("127.0.0.1",8888);
			//接收文件
			DataInputStream bufferedReader=new DataInputStream(socket.getInputStream());
			System.out.println(bufferedReader.readUTF());
			FileOutputStream fo=new FileOutputStream("D:\\lx.txt");
			System.out.println("开始接收文件!");
			int p = 0;
			//接收文件和md5码
			while((p=bufferedReader.read())!= -1) {
				fo.write(p);
				fo.flush();
			}
			System.out.println("开始接收服务器传输的MD5码!");
			String list=FileUtils.readFileToString(new File("D:/lx.txt"), "UTF-8");
			System.out.println(list);
			String conlist=list.substring(0, list.length()-32);
			//分离文件和接收到的md5码
			String md5list=list.substring(list.length()-32);
			System.out.println("原文为" + conlist);
			System.out.println("客户端收到的md5为" + md5list);
			File file = new File("D:/lx.txt");
			PrintStream ps = new PrintStream(new FileOutputStream(file));
			ps.print(conlist);
			ps.close();
			//文件的md5码
			String md5str = MD5Util.getMD5(new File("D:/lx.txt"));
			System.out.println("文件的md5码:" + md5st
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值