文件传输有问题,请进。(100分)

  • 主题发起人 主题发起人 永不言败
  • 开始时间 开始时间

永不言败

Unregistered / Unconfirmed
GUEST, unregistred user!
{发送文件}
DllFileStream:=TFileStream.Create(sDllFile,fmOpenRead);
WriteStream.CopyFrom(DllFileStream,DllFileStream.Size);
{*****}

{***接受文件***}
FileStream:=TFileStream.Create(sDllFile,fmCreate);
while (not terminated) and (FrmComToClubServ.CstDownDll.Socket.connected) do
begin
ReadStream.WaitForData(OVER_TIME);
FillChar(ReadRecord,10,0);
if ReadStream.Read(ReadRecord,10)=0 then break;
FileStream.Write(ReadRecord,10);
end;
{******}
程序能正常运行,但是得到的文件变大了,请高手指点。
 
你发送是用UDP还是TCP联接?
如果是UDP的话,要检查发送包数量和接收包数量是否正确,
一般自己做个校验就行了,
 
tcp的socket连接
client和Server都是采用的阻塞方式
 
你对比从哪里开始变化的,是tcp头,还是其他!,可以好好分析
 
大了多少?几倍么?
 
tcp数据包传输是比较可信的,至于的问题,相信你的的读取或写入时的问题
 
大了一点点,基本上是几十byte
 
是阿宽吗?
 
ReadStream.WaitForData(OVER_TIME);
FillChar(ReadRecord,10,0);
if ReadStream.Read(ReadRecord,10)=0 then break;
FileStream.Write(ReadRecord,10);
改为

ReadStream.WaitForData(OVER_TIME);
FillChar(ReadRecord,10,0);
i:=ReadStream.Read(ReadRecord,10)
if i =0 then break;
FileStream.Write(ReadRecord,i);

这样看看
 
aolo,是我,能帮我搞定吗?
 
问题解决,多谢"老人家"
aolo是个骗子
 
to 永不言败
不客气

你写的什么程序,能不能让我看看
liuyj_74@163.com
谢谢
 
后退
顶部