java socket 文件传输 有点问题

问题描述

我写的SOCKET文件传输带MD5校验,客户端总是多写16位的MD5服务端代码:(在WRITE完以后,还需要WRITE16位的MD5值)while(len<=8096&&fis.available()>0){byte[]src=newbyte[8096];len=fis.read(src);dos.write(src,0,len);dos.flush();}dos.write(fth.getMd5Value());dos.flush();客户端代码:while(rFilelen>0){byte[]recvData=newbyte[8096];intlen=dis.read(recvData);//进行SHA1校验digest.update(recvData,0,len);fos.write(recvData,0,len);rFilelen=rFilelen-len;System.out.println(rFilelen);}byte[]md5Value=newbyte[16];dis.readFully(md5Value);

解决方案

解决方案二:
该回复于2013-12-10 22:14:01被版主删除
解决方案三:
只有神知道你出了什么问题?报什么错?出了什么状况?你简单描述一呀。
解决方案四:
这样写就对了if(recvFileLen<=8096){inttem=recvFileLen%8096;byte[]recvData=newbyte[tem];intlen=dis.read(recvData);//进行SHA1校验digest.update(recvData,0,tem);//写文件fos.write(recvData,0,tem);recvFileLen=recvFileLen-len;}else{byte[]recvData=newbyte[8096];intlen=dis.read(recvData);//进行SHA1校验digest.update(recvData,0,len);//写文件fos.write(recvData,0,len);recvFileLen=recvFileLen-len;}

时间: 2024-08-31 01:35:00

java socket 文件传输 有点问题的相关文章

java socket 文件传输-java socket 传文件文件接收后不能打开

问题描述 java socket 传文件文件接收后不能打开 java socket传文件,客户端将文件读取到byte[]中,然后用Map对相关内容进行包装之后输出到服务器端,但服务器端读取文件内容的循环除第一次读取的Map是客户端写入过来的内容外,从第二次循环开始Map的内容都跟第一次一样的,请问怎么回事? 服务器端代码: `public void run() { ObjectInputStream is = null; OutputStream os = null; byte cache[]

socket-java SOCKET 文件传输 有点问题咨询下!

问题描述 java SOCKET 文件传输 有点问题咨询下! 我写的SOCKET 文件传输带MD5校验,客户端总是多写16位的MD5 服务端代码:(在WRITE完以后,还需要WRITE16位的MD5值) while (len <= 8096 && fis.available() > 0) { byte[] src = new byte[8096]; len = fis.read(src); dos.write(src, 0, len); dos.flush(); } dos.w

局域网-java socket 网络传输文件使网络使用率最大化

问题描述 java socket 网络传输文件使网络使用率最大化 局域网传输文件,如何使网络使用率最大化,主要问题是在客户端接收数据写入磁盘时会影响传输效率,有没有好的办法解决呢? 解决方案 1)文件分片并使用多线程传输,文件传输前要预先在磁盘分配好文件所需空间 2)为了提高传输效率,客户端建立数据的内存缓冲区,针对每一个文件片的传输,客户端要启一个线程负载下载到缓冲区,再启一线程从缓冲区读数据写磁盘. 解决方案二: 多线程,边传输数据边写入文件

Java socket字节流传输示例解析_java

本文为大家分享了Java socket字节流传输示例,供大家参考,具体内容如下 服务端server端:  package com.yuan.socket; import java.io.*; import java.net.ServerSocket; import java.net.Socket; /** * Created by YUAN on 2016-09-17. */ public class TalkServer4Byte { private ServerSocket server;

Linux网络编程之socket文件传输示例_C 语言

本文所述示例程序是基于Linux平台的socket网络编程,实现文件传输功能.该示例是基于TCP流协议实现的socket网络文件传输程序.采用C语言编写.最终能够实现传输任何格式文件的文件传输程序. 具体实现代码如下: Server端代码如下: /************************************************************************* > File Name: Server.c > Author: SongLee ***********

C语言实现Linux下的socket文件传输实例_C 语言

本文实例讲述了C语言实现Linux下的socket文件传输.分享给大家供大家参考.具体如下: server.c如下: //////////////////////////////////// //服务器代码 /////////////////////////////////// //本文件是服务器的代码 #include <netinet/in.h> // for sockaddr_in #include <sys/types.h> // for socket #include &

Java基于Socket文件传输示例

最近需要进行网络传输大文件,于是对基于socket的文件传输作了一个初步的了解.在一位网友提供的程序基础上,俺进行了一些加工,采用了缓冲输入/输出流来包装输出流,再采用数据输入/输出输出流进行包装,加快传输的速度.废话少说,先来看服务器端的程序. 1.服务器端 package sterning; import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.DataOutputStream;

Java 网络文件传输

网络 读者范围: 本文是一篇简短入门文章.本文假设读者对Java的IO系统和Java的网络系统有所了解. 正文: 关于文件传输的问题,实际也是一种IO读写的基本问题.对于网络而言也是一种IO读写问题.因此所谓网络的文件传输实际是两种IO问题的综合讨论.这里我们首先分析一个图示.然后围绕这个图示来讨论: 图1: 分析图1我们基本可以知道从服务器文件系统中通过流把文件中的数据写入到服务器的进程中,然后把进程中的数据通过网络IO系统传递到客户机,这个阶段,网络中的数据以字节流的形式保存.当该字节流被客

matlab调用java实现文件传输

问题描述 各位高手们:我想在matlab中调用java程序,就是在matlab中写java代码,利用java的socket实现文件传输功能,请问下可以嘛 解决方案 解决方案二:我知道可以在matlab中利用java的socket实现数据传输,不知道文件传输可以实现不.解决方案三:数据传输和文件传输的差别是你需要先打开文件并读取文件中的数据内容,这个动作Java能完成.解决方案四:我也是这样做的,但是最后还是不行....您有没有做过这方面的啊解决方案五:引用4楼xiaolu114的回复: 我也是这