`
linglingxia
  • 浏览: 38073 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论

文件传送小结

 
阅读更多

通信讲的就是根据协议传送数据。传送文件的套路也是差不多的,我们做的也是小文件的传送。可能具体的做法还是各有不同,我们是用最笨的方法做的,客户端首先使用文件输入流将文件读出来,将读到的字符串转换成byte 数组,再写进网络输出流中。后面就是服务器的事了,流程基本上反过来就差不多了。不过我们再做的过程中,还是纠结了很久,很多小问题都困扰着我们。特别是我这边的客户端,我犯了几个很揪心的错误。

 

1.首先最不能原谅自己的就是现在居然又犯这个错,e.getSource() e.getActionCommand()返回的结果类型又搞错了。以后坚决要记住了。    

2.将byte数组转换成string 类型。很遗憾,我想当然的使用了toString()方法,结果打印测试的时候,一直是乱码,想不通,为什么前面打印它的长度是对的,这里就卡掉了。我和搭档试了很多遍结果还是一样。于是去查API文档,发现方法用错了。上面那个方法是将单个byte值转换string时用的.string(byte[] bytes)的这个构造方法才是我们需要的。然后就迫不及待的用了这个方法。

3File  file=new File("D:\\100"+name);   //文件保存的地址 

我们将收到的文件的内容都打印出来了,可是去上面这个目录上查看的时候还是没有。真的想不通啊,怎么可能呢!不可能的啊,我们都可以将其内容读出来了,怎么还是没有???

坐在那发了下呆,才无意中看到这个路径,是不是少了点什么,赶紧加上。

File  file=new File("D:\\100\\"+name);   //文件保存的地址

才终于解决啊。

 

     以上读取文件时是一次从头到尾,再写进网络流中,没有考虑到大文件传送时会遇到的问题。所以针对大型文件显然这不是个好方法了。

一般发送方可以采用多线程的并行方法来读取和传送,这样会更快些。首先自己可以定义根据文件的大小来分区,固定每一小块的文件的大小(当然最后一块可以不同),当然多线程传送的时候也要标记每一小块的顺序,以便后来文件的还原。接收方在接收文件数据时,根据每个线程记录的顺序标记,和协议规定的每一快文件的大小来确定接收到的文件的插入位置,再整合到原来的文件,完成大文件的传送。不过大型文件我们暂时还没有实现,打算在这次的项目中实现。

 

分享到:
评论

相关推荐

    ROS机器人学习小结.docx

    ROS机器人学习小结全文共9页,当前为第1页。ROS机器人学习小结全文共9页,当前为第1页。ROS机器人学习小结 ROS机器人学习小结全文共9页,当前为第1页。 ROS机器人学习小结全文共9页,当前为第1页。 Ros简介 ROS是一...

    计算机组成总结数据传输实验

    就是那个jishuqi文件,这个实验简单,但很容易把人搞晕是不是!

    文件传输假设性C程序

    学习小结,拥有首页,传输界面,传输结果及尾页!!!!

    Android 大文件上传时处理上传进度问题小结

    进行大文件上传时,显示上传进度给用户带来极好的用户体验度,今天小编给大家分享Android 大文件上传时处理上传进度问题小结,需要的的朋友参考下吧

    php文件系统处理方法小结

    本文总结分析了php文件系统处理方法。分享给大家供大家参考,具体如下: 文件类型 以Linux为模型的, 在Windows...fifo: 信息管道,从一个程序传输到另一个进程 file: 普通的文件类型如文本文件,可执行文件 link: 链接

    UNIX环境高级编程_第二版中文

    4.24 文件访问权限位小结  4.25 小结  习题  第5章 标准I/O库  5.1 引言  5.2 流和FILE对象  5.3 标准输入、标准输出和标准出错  5.4 缓冲  5.5 打开流  5.6 读和写流  5.7 每次一行I/O  5.8...

    rsync命令教程 在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项。

    文件以归档模式进行传输,以确保符号链结、属性、权限、属主等信息在传输中都被保存。此外,可以使用压缩技术来加快数据传输: rsync -avz servivcer:src/bar/ /data/tmp 路径信息以"/"结尾时表示拷贝该目录,而不以...

    rar压缩软件.rar

    在 c:\*.rar 压缩文件中的 *.txt 文件执行区分大小写的 "first level" 字符串的搜索 2) rar ih=f0e0aeaeab2d83e3a9 -r e:\text 在 e:\text 目录下的 rar 压缩文件中搜索十六进制字符串 f0 e0 ae ae ab 2d 83 ...

    TCP SOCKET用法小结v1.1.doc

    网络的 socket数据传输是一种特殊的I/O,socket也是一种文件描述符。socket也具有一个类似于打开文件的函数调用socket(),该函数返 回一个整型的socket描述符,随后的连接建立、数据传输等操作都是通过该socket实现...

    UNIX环境高级编程(第二版中文)

    4.24 文件访问权限位小结 106 4.25 小结 106 习题 107 第5章 标准I/O库 109 5.1 引言 109 5.2 流和FILE对象 109 5.3 标准输入、标准输出和标准出错 110 5.4 缓冲 110 5.5 打开流 112 5.6 读和写流...

    unix环境编程电子书

    478 17.4 传送文件描述符 482 17.4.1 经由基于STREAMS的管道传送文件描述符 484 17.4.2 经由UNIX域套接字传送文件描述符 486 17.5 open服务器版本1 493 17.6 open服务器版本2 498 17.7 小结 505 习题 ...

    UNIX环境高级编程

    4.24 文件访问权限位小结 106 4.25 小结 106 习题 107 第5章 标准I/O库 109 5.1 引言 109 5.2 流和FILE对象 109 5.3 标准输入、标准输出和标准出错 110 5.4 缓冲 110 5.5 打开流 112 5.6 读和写流...

    TCPIP详解--共三卷

    1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口 20 2.8 最大传输单元MTU 21 2.9 路径MTU...

    TCP/IP详解卷 pdf格式

    1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口 20 2.8 最大传输单元MTU 21 2.9 路径MTU...

    FTP客户端设计与实现

    目 录 1 引言 1.1 课题背景 1.2 国内外研究现状 1.3 本课题研究的意义 1.4 本课题的研究方法 2 技术背景 2.1 .NET技术简介 2.2 Visual Studio.NET简介 ...5.3 测试小结 结 论 参考文献 致 谢

    TCP/IP技术大全(中文PDF非扫描版)

    1.3 小结 7 第2章 TCP/IP和Internet 8 2.1 一段历史 8 2.1.1 ARPANET 8 2.1.2 TCP/IP 9 2.1.3 国家科学基金会(NSF) 9 2.1.4 当今的Internet 12 2.2 RFC和标准化过程 12 2.2.1 获得RFC 13 2.2.2 RFC索引 13 2.2.3 ...

    TCP_IP协议详解卷一

    1.17 小结 13 第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口 20 2.8 最大传输单元MTU 21 2.9 路径MTU...

Global site tag (gtag.js) - Google Analytics