`
行者买刀
  • 浏览: 194485 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

TCP实现局域网文件传输细节

F# 
阅读更多

         续上次讲过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实现局域网聊天通讯

    TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输协议,被广泛应用于各种网络应用,如聊天、邮件、文件传输等。本项目“TCP实现局域网聊天通讯”就是基于这样的背景,通过使用TCP协议和WPF...

    局域网内文件的点对点传输 mfc实现

    以上就是使用MFC在局域网内实现点对点文件传输的基本步骤和关键知识点。通过理解和实践这些技术,你可以创建出高效、稳定的文件传输工具。在实际开发中,还需要考虑更多的细节,例如性能优化、用户体验、错误处理...

    TCP 聊天 局域网 c#

    10. 文件E01-SyncChat:这个文件可能是项目源代码的一部分,包含服务器端和客户端的实现细节。通过阅读和分析源代码,可以更深入地理解TCP聊天系统的工作原理和C#编程技巧。 总的来说,“TCP聊天 局域网 c#”项目是...

    局域网文件传输程序(飞鸽传输)源代码

    其中,“飞鸽传输”是一款基于Visual C++实现的局域网文件传输软件,因其简洁高效而备受青睐。本文将对“飞鸽传输”的源代码进行深入剖析,揭示其背后的编程原理和技术细节。 首先,我们来看文件传输的基本原理。在...

    局域网文件传输模块代码

    标题中的“局域网文件传输模块代码”表明这是一个专门用于在局域网内实现文件传输的软件组件。这个模块可能是由一系列的C++源代码文件组成,设计目标是让其他程序能够方便地调用,实现快速、高效的数据共享。描述中...

    用VB实现局域网内的文件传输

    在IT领域,VB(Visual Basic)是一种常用的编程语言,由微软公司开发,它以其直观的图形用户界面和简单的编程语法而受到欢迎。...通过实践,我们可以深入理解和掌握VB的网络编程能力,以及局域网文件传输的流程和技术。

    c++实现局域网文件传送基于socket

    这些代码将具体展示如何运用上述原理来实现局域网内的文件传输。 总的来说,C++和Socket API结合,可以构建出高效、灵活的网络应用,实现文件在局域网内的安全传输。理解并熟练掌握这一技术,对于开发网络相关项目...

    局域网文件传输 Socket编程 C#代码

    分析并理解这个示例代码可以帮助你更好地掌握Socket编程在局域网文件传输中的应用。通过实践和调试这段代码,你可以更深入地了解网络通信的细节,包括如何处理并发连接、优化传输速度以及确保数据的正确传输。 总之...

    通过TCP实现的局域网语音对讲功能

    在提供的压缩包中,"Voice"可能包含以下内容:音频采集和播放的源代码、TCP通信的实现代码、配置文件以及示例工程。开发者可以通过研究这些代码了解具体实现细节,如音频采集API的调用、TCP套接字编程、编码解码算法...

    android socket局域网文件传输131114

    本项目"android socket局域网文件传输131114"是针对这一需求实现的一个示例,它利用了Socket、多线程以及ListView等Android核心组件,旨在提供一种高效、稳定、用户友好的文件共享解决方案。 首先,Socket作为TCP/...

    vc++ socket 局域网文件传输程序源代码.zip

    总之,`vc++ socket 局域网文件传输程序源代码.zip`项目涵盖了C++编程、Socket网络通信和文件操作等多个技术点,对于学习网络编程和C++应用开发的人员来说,这是一个很好的实践案例。通过分析和理解这个项目,开发者...

    局域网文件传输

    本篇文章将深入探讨局域网文件传输的概念、方法以及相关的技术细节。 局域网文件传输主要涉及以下知识点: 1. **网络基础**:局域网是一种小范围的网络系统,通常覆盖范围在几公里以内,如办公室、家庭或校园。它...

    局域网文件传输和短信收发源代码

    通过对"局域网文件传输和短信收发源代码"的解析,我们将揭示其背后的技术原理和实现细节。 首先,让我们关注用户搜索与列表生成。在局域网中,为了实现用户间的通信,需要获取网络上的其他计算机信息。通过使用...

    简单Tcp局域网连接

    本文将深入探讨“简单Tcp局域网连接”,主要关注C/S架构下的TCP连接实现。 C/S架构,即客户端/服务器架构,是一种常见的网络应用模式。在这种模式下,客户端应用程序发起请求,服务器端应用程序接收到请求后进行...

    JAVA局域网飞鸽传书软件设计与实现(源代码+论文)

    《JAVA局域网飞鸽传书软件设计与实现》是一个基于JAVA技术的局域网文件传输项目,旨在提供一种高效、便捷的文件分享方式。该项目不仅包含完整的源代码,还附带了详细的学术论文,为学习者提供了深入理解其工作原理和...

    商业编程-源码-这是两个实现局域网内文件传输的封装类.zip

    3. 文件传输API:实现局域网文件传输,可能涉及到的操作系统提供的API,如Windows的SMB(Server Message Block)或Unix/Linux的NFS(Network File System)。这些API使得应用程序可以直接与网络上的其他计算机进行...

    局域网文件传输V1.2版源代码.rar

    【标题】"局域网文件传输V1.2版源代码.rar" 提供的是一个用于在局域网内实现文件传输的应用程序的源代码。这个版本可能是对之前版本的升级,可能包含了一些优化和错误修复。 【描述】提到的链接指向了一个CSDN博客...

    vc用MFC实现局域网内点对点的大文件传输

    本篇文章将深入探讨如何使用Microsoft Foundation Classes (MFC)库在Visual C++环境中实现局域网内的点对点大文件传输。 MFC是微软提供的一套C++类库,它为开发Windows应用程序提供了丰富的接口和工具。利用MFC,...

    【python】TCP socket 实现局域网一对一聊天.rar

    标题中的“【python】TCP socket 实现局域网一对一聊天.rar”表明了我们要讨论的是一个使用Python编程语言,通过TCP套接字(socket)实现的局域网内一对一聊天应用程序。TCP(Transmission Control Protocol)是一种...

Global site tag (gtag.js) - Google Analytics