通过Socket连接一次传输多个文件

本文介绍了在实现手机间通过WIFI进行文件传输时,如何通过Socket一次性传输多个文件的技术细节。针对如何确定文件边界的问题,提出了先发送文件名和大小,再传输文件内容的策略,并详细阐述了接收端如何解析缓冲区数据,正确拆分不同文件的过程。同时,讨论了两种解析方法,包括使用ByteArrayInputStream和DataInputStream,以及手动利用位运算进行解析。
摘要由CSDN通过智能技术生成

最近在做一个通过WIFI在手机之间传输文件的功能。需要在手机之间建立一个持久的Socket

连接并利用该连接传输数据。可以一次传输一个或多个文件。

在一次传输多个文件时,遇到了一个困难:如何在接收文件时确定文件之间的边界。

为了在接收端正确的拆分文件,在传输文件时需要传输每个文件的大小。


我采用了这样一种策略:首先发送每个文件的名称和大小,然后传输文件的内容。

protected void sendFile(Socket socket, File[] files) {
		long totalSize = 0;
		byte buf[] = new byte[8192];
		int len;
		try {
			if (socket.isOutputShutdown()) {
				return;
			}
			DataOutputS
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值