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;在局域网中文件接收速度很慢 虽然最后文件大小和发送一致 但是内容却出现了不一致的现象 请问这是什么原因所致?