java与delphi之间的文件传输问题

问题描述

java与delphi之间的文件传输问题

使用socket进行通信 delphi作为客户端中使用的是文件流TfileStream传送文件
java作为服务端用的InputStreamReader获取
悲催的问题来了 服务端获取不到文件中的末尾也就是说不知道文件传输是否结束
文件传完了也一直连着

后来使用一个比较笨的办法解决
用新建了一个缓存区buf去取数据一次只取一部分
当buf取到的值不满时就判断文件传输完成…
所以悲催的新问题又来了 文件还只是传一部分就结束了
所以想请问一下各位大牛们如何解决这个文件传输的问题?
亦或者有什么其它的传输方式?

解决方案

1、先握手,先传这文件的基本信息,比如名称,后缀,文件大小
2、然后开始接受文件。如果会和其他信息会有交叉,那消息传递时固定大小并且消息前面留出标记位,知道这是文件的信息。
3、对方根据文件大小接收文件。
4、文件传输完也可以传送一个结束标记

一般SOCKET交互,文件大小是需要实现先给对方的,这样比较清楚,对方也容易建立足够的缓冲区。

时间: 2024-07-30 21:38:56

java与delphi之间的文件传输问题的相关文章

自己写了一个用java socket通信实现的文件传输,如果我想实现不同局域网之间的传输怎么办?

问题描述 自己写了一个用java socket通信实现的文件传输,如果我想实现不同局域网之间的传输怎么办? 可不可以把自己的电脑搭建成服务器然后把文件传上去,自己电脑的服务器可以使用非web的文件么 解决方案 不同局域网之间通信要路由器交换机支持,进行路由转发.不然不能直接通信 解决方案二: 如果Socket通信的话IP地址必须相同

udp-需要一个java基于UDP协议的文件传输程序

问题描述 需要一个java基于UDP协议的文件传输程序 文件是一个实验数据的文件,是txt个格式的,需要将它传输到指定的IP上 解决方案 server package com.way.server;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundEx

java socket编程如何测量文件传输速度?

问题描述 java socket编程如何测量文件传输速度? 作业需要,分别写了一个基于tcp和udp的传输文件的程序,想测试两者同时传输时各自的传输速度 请问有什么方法可以实现? 解决方案 发送时发送一个记录客户端时间的包,同时记录好这个包的大小 .服务端在收到这个包后,拆包.取出客户端时间和自己的服务端时间时行差值计算. 然后,接下去就好做了 解决方案二: 类似问题的,http://bbs.csdn.net/topics/391036058,建议参考一下看看 解决方案三: 在发送数据的时候获取

平台之间的文件传输向来是iOS设备的软肋之一

即便在网络云服务发展如此迅猛的今天,平台之间的文件传输向来是iOS设备的软肋之一.将PC上的文档和音乐迁移到iPhone,把Mac中的视频和图片同步到iPad等这些看似容易的日常操作对用户来说简直就是"活受罪".如果有iStick帮忙,它可能会让你轻松不少. iStick是一款通过了苹果MFi认证的U盘,它具备了Lightning和USB两个接口,通过调节可以进行任意的接口切换.iStick最大的亮点就是能当做一个文件存储的中转站,将Mac.PC上的任何文件传输到iOS设备本地,反之同

利用JAVA做C/S IM 文件传输部分出问题nullpointerexception

问题描述 最近在做课程设计做到文件传输时候遇到这样问题:两个客户端.服务器都开了能够进行文字谈话但想传送文件时候A客户端发文件到B时B没有反应,显示connectiontimedout:connectExceptioninthread"Thread-3"java.lang.NUllpointerExceptionat(后面内容是语句位置)//*********启动文件传输线程管理文件传输privateclassThreadfsentextendsThread{Socketsocketf

Delphi实现木马文件传输代码实例_Delphi

本文以实例形式讲述了Delphi下木马的文件传输方法的实现过程,具体步骤如下: 服务器端代码: unit ServerFrm; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls,WinSock; type TfrmMain = class(TForm) Panel1: TPanel; Labe

socket-Socket通信问题,两个手机间进行文件传输?

问题描述 Socket通信问题,两个手机间进行文件传输? 有没有人Socket实现两个手机之间的文件传输??一个手机app做为服务端,另一个做为客户端,通过Socket连接后,两个app之间可以进行文件传输!急急急急急急 解决方案 这个不难吧, 电脑如何的,手机也是如何呢?就相当于两台电脑. 解决方案二: 用http协议,上传下载什么的都有很多例子 解决方案三: 两手机之间的Socket的实现与一台PC和一手机之间是一样的. 只不过由于手机都是公网的IP,且是动态的,每次连网后的公网 IP 一般

Java基于TCP方式的二进制文件传输_java

一个基于Java Socket协议之上文件传输的完整示例,基于TCP通信完成. 除了基于TCP的二进制文件传输,还演示了JAVA Swing的一些编程技巧,Demo程序 实现主要功能有以下几点: 1.基于Java Socket的二进制文件传输(包括图片,二进制文件,各种文档work,PDF) 2.SwingWorker集合JProgressBar显示实时传输/接受完成的百分比 3.其它一些Swing多线程编程技巧 首先来看一下整个Dome的Class之间的关系图: 下面按照上图来详细解释各个类的

现代企业IT系统中的文件传输浅析

问题描述 随着信息化程度的加深,现代企业的数据化程度也越来越高,各种财务数据.设计图纸.制造BOM.库存.采购.销售等数据信息,它们的存在形式也往往是各种不同类型的文件,如.doc,.xls,.ppt,.pdf等,逐步成为企业重要数字资产.但这些数据往往不是静止的,它们具有相当的时效性和流动性,只有在规定时间内,在特定的系统中,经过整理.归纳.统计.分析,才会实现数据的价值.因此除了对于企业内部的OA.ERP.BI.CRM等IT系统的建设以外,现代企业对于跨地域.跨系统间的文件传输,也正成为IT