同步阻塞传输文件问题(100)

  • 主题发起人 主题发起人 qinglan.ai
  • 开始时间 开始时间
Q

qinglan.ai

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用tserversocket在每个socket连接的时候单独创建了一个线程对对方发送文件进行接收tcp在理论上是不会丢包和乱序的 我发送文件采用的是先发送文件大小 然后在传输文件内容的流程 以下是接收文件的代码 while dfilesize>dwBytesDone do begin if dfilesize<8192 then begin setlength(lpbuf,dfilesize) ; dwlen:=dfilesize; end else begin if dfilesize-dwbytesdone>8192 then begin setlength(lpbuf,8192) ; dwlen:=8192; end else begin setlength(lpbuf,dfilesize-dwbytesdone) ; dwlen:=dfilesize-dwbytesdone; end; end; SocketStream.Read(pointer(lpbuf)^,dwlen); WriteFile(BinaryFile, pointer(lpbuf)^, dwlen, dwBytesWritten, nil); inc(dwBytesDone, dwBytesWritten); end;在局域网中文件接收速度很慢 虽然最后文件大小和发送一致 但是内容却出现了不一致的现象 请问这是什么原因所致?
 
SocketStream.Read(pointer(lpbuf)^,dwlen);可能是读取或保存文件的过程中,指针的指向了故障
 

Similar threads

S
回复
0
查看
896
SUNSTONE的Delphi笔记
S
S
回复
0
查看
873
SUNSTONE的Delphi笔记
S
后退
顶部