续上次讲过UDP传输文件,这次简要讲下关于TCP文件传输的发送端与接收端.tcp传输主要关键地方就是文件末尾的处理
发送端代码:
private void sendFile(File f) throws Exception {
oos.writeUnshared(f);
oos.writeLong(f.length());
FileInputStream fins = new FileInputStream(f);
byte[] buf = new byte[8192];
int size = 0;
while ((size = fins.read(buf)) != -1) {
oos.write(buf, 0, size);
}
System.out.println("发送方发送文件:" + f + " 完毕");
oos.flush();
fins.close();
}
接收端代码:
/**
* 处理对方发过来的文件
*/
private void doReceiveFile(String savePath) throws Exception {
File f = (File) ois.readUnshared();//文件
long len = ois.readLong();
System.out.println("接收方 收到发送方的文件:" + f + " 文件大小:" + len);
File file = new File(savePath, f.getName());
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
BufferedOutputStream fous = new BufferedOutputStream(new FileOutputStream(file));
byte[] buffer = new byte[8192];
int lengths = -1;//实现每次接收到的数组长度
int accepts = 0;//当前已经传的文件长度
int canRead = (int) (len - accepts - 8192 < 0 ? len - accepts : 8192);//处理文件末尾
while ((lengths = ois.read(buffer, 0, canRead)) > 0) {
fous.write(buffer, 0, lengths);
accepts += lengths;
canRead = (int) (len - accepts - 8192 < 0 ? len - accepts : 8192);
}
fous.close();
System.out.println("接收方接收文件完毕");
}
分享到:
相关推荐
TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,被广泛应用于各种网络应用,如聊天、邮件、文件传输等。本项目“TCP实现局域网聊天通讯”就是基于这样的背景,通过使用TCP协议和WPF...
以上就是使用MFC在局域网内实现点对点文件传输的基本步骤和关键知识点。通过理解和实践这些技术,你可以创建出高效、稳定的文件传输工具。在实际开发中,还需要考虑更多的细节,例如性能优化、用户体验、错误处理...
10. 文件E01-SyncChat:这个文件可能是项目源代码的一部分,包含服务器端和客户端的实现细节。通过阅读和分析源代码,可以更深入地理解TCP聊天系统的工作原理和C#编程技巧。 总的来说,“TCP聊天 局域网 c#”项目是...
其中,“飞鸽传输”是一款基于Visual C++实现的局域网文件传输软件,因其简洁高效而备受青睐。本文将对“飞鸽传输”的源代码进行深入剖析,揭示其背后的编程原理和技术细节。 首先,我们来看文件传输的基本原理。在...
标题中的“局域网文件传输模块代码”表明这是一个专门用于在局域网内实现文件传输的软件组件。这个模块可能是由一系列的C++源代码文件组成,设计目标是让其他程序能够方便地调用,实现快速、高效的数据共享。描述中...
在IT领域,VB(Visual Basic)是一种常用的编程语言,由微软公司开发,它以其直观的图形用户界面和简单的编程语法而受到欢迎。...通过实践,我们可以深入理解和掌握VB的网络编程能力,以及局域网文件传输的流程和技术。
这些代码将具体展示如何运用上述原理来实现局域网内的文件传输。 总的来说,C++和Socket API结合,可以构建出高效、灵活的网络应用,实现文件在局域网内的安全传输。理解并熟练掌握这一技术,对于开发网络相关项目...
分析并理解这个示例代码可以帮助你更好地掌握Socket编程在局域网文件传输中的应用。通过实践和调试这段代码,你可以更深入地了解网络通信的细节,包括如何处理并发连接、优化传输速度以及确保数据的正确传输。 总之...
在提供的压缩包中,"Voice"可能包含以下内容:音频采集和播放的源代码、TCP通信的实现代码、配置文件以及示例工程。开发者可以通过研究这些代码了解具体实现细节,如音频采集API的调用、TCP套接字编程、编码解码算法...
本项目"android socket局域网文件传输131114"是针对这一需求实现的一个示例,它利用了Socket、多线程以及ListView等Android核心组件,旨在提供一种高效、稳定、用户友好的文件共享解决方案。 首先,Socket作为TCP/...
总之,`vc++ socket 局域网文件传输程序源代码.zip`项目涵盖了C++编程、Socket网络通信和文件操作等多个技术点,对于学习网络编程和C++应用开发的人员来说,这是一个很好的实践案例。通过分析和理解这个项目,开发者...
本篇文章将深入探讨局域网文件传输的概念、方法以及相关的技术细节。 局域网文件传输主要涉及以下知识点: 1. **网络基础**:局域网是一种小范围的网络系统,通常覆盖范围在几公里以内,如办公室、家庭或校园。它...
通过对"局域网文件传输和短信收发源代码"的解析,我们将揭示其背后的技术原理和实现细节。 首先,让我们关注用户搜索与列表生成。在局域网中,为了实现用户间的通信,需要获取网络上的其他计算机信息。通过使用...
本文将深入探讨“简单Tcp局域网连接”,主要关注C/S架构下的TCP连接实现。 C/S架构,即客户端/服务器架构,是一种常见的网络应用模式。在这种模式下,客户端应用程序发起请求,服务器端应用程序接收到请求后进行...
《JAVA局域网飞鸽传书软件设计与实现》是一个基于JAVA技术的局域网文件传输项目,旨在提供一种高效、便捷的文件分享方式。该项目不仅包含完整的源代码,还附带了详细的学术论文,为学习者提供了深入理解其工作原理和...
3. 文件传输API:实现局域网文件传输,可能涉及到的操作系统提供的API,如Windows的SMB(Server Message Block)或Unix/Linux的NFS(Network File System)。这些API使得应用程序可以直接与网络上的其他计算机进行...
【标题】"局域网文件传输V1.2版源代码.rar" 提供的是一个用于在局域网内实现文件传输的应用程序的源代码。这个版本可能是对之前版本的升级,可能包含了一些优化和错误修复。 【描述】提到的链接指向了一个CSDN博客...
本篇文章将深入探讨如何使用Microsoft Foundation Classes (MFC)库在Visual C++环境中实现局域网内的点对点大文件传输。 MFC是微软提供的一套C++类库,它为开发Windows应用程序提供了丰富的接口和工具。利用MFC,...
标题中的“【python】TCP socket 实现局域网一对一聊天.rar”表明了我们要讨论的是一个使用Python编程语言,通过TCP套接字(socket)实现的局域网内一对一聊天应用程序。TCP(Transmission Control Protocol)是一种...