怎样分块传送7m的数据用clientsocket,serversocket?

cd_fsy2000 2003-09-15 04:02:22
客户端:
Var
s : TWinSocketStream;
f : TFileStream;
begin
if not strlib.showdlg('真的要上传数据吗?') then exit;
if not cs1.Active then cs1.Active:=true;
s := TWinSocketStream.Create(Cs1.Socket, 60000);
f := TFileStream.Create('c:\casher2000.rar, fmShareDenyWrite);
Try//我用断点运行时发现f是空的
s.CopyFrom(f, 0);//出错提示:write error 64 指定的网络名不再可用
Finally
s.Free;
f.Free;
End;

服务端:
Procedure TClientThread.ClientExecute;
Var
ReceiveBuffer : Array[0..4095] Of Char;
SocketStream : TWinSocketStream;
BytesRead : Integer;
F : TFileStream;
Begin
While Not Terminated And ClientSocket.Connected Do
Begin
try
SocketStream := TWinSocketStream.Create(ClientSocket, 60000);
F := TFileStream.Create('d:\casher2000.rar', fmCreate);
try
FillChar(ReceiveBuffer, 10, 0);
If SocketStream.WaitForData(5000) Then//不懂
Repeat
BytesRead := SocketStream.Read(ReceiveBuffer,SizeOf(ReceiveBuffer));
if BytesRead = 0 then
ClientSocket.Close
Else
F.WriteBuffer(ReceiveBuffer, BytesRead);
Until Not SocketStream.WaitForData(2000);
finally
SocketStream.Free;
ClientSocket.Close;
f.Free;
end;
except
end;
End;
End;


procedure TForm1.ServerSocket1GetThread(Sender: TObject;
ClientSocket: TServerClientWinSocket;
var SocketThread: TServerClientThread);
begin
SocketThread := TClientThread.Create(False, ClientSocket);
end;
这是我东拼西凑来的代码
d:\casher2000.rar是空的,我规定一次传60000字节,但下一次怎么传啊
要用循环吗?
...全文
45 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cd_fsy2000 2003-09-16
  • 打赏
  • 举报
回复
救命啊!!!!!
cd_fsy2000 2003-09-15
  • 打赏
  • 举报
回复
现在我传送一个.txt的文件,完了以后发现传过去的是空的没有数据?
cd_fsy2000 2003-09-15
  • 打赏
  • 举报
回复
popprogrammer()
老大能发送点代码吗?我好急啊都几天了还没有解决?感激不尽
cd_fsy2000@hotmail.com
popprogrammer 2003-09-15
  • 打赏
  • 举报
回复
先定义包的大小 如1024,后两端来回发送命令,直至收到的文件大小等于要发送的文件大小。我现在正做紧关于这个问题的工程,巳被我解决了,我的QQ是63654417:
主要用的api是copyfrom,ReadBuffer,Write,
zjqyb 2003-09-15
  • 打赏
  • 举报
回复
TWinSocketStream.Create(Cs1.Socket, 60000)中的60000是timeout,不是规定一次传60000字节,不需要用循环TWinSocketStream.CopyFrom自己就能处理!!!

chenyourkey 2003-09-15
  • 打赏
  • 举报
回复
呵呵.......理解,同情,我也遇到同样的问题,呵呵.......我也没有解决:(
cd_fsy2000 2003-09-15
  • 打赏
  • 举报
回复
没有人吗?
cd_fsy2000 2003-09-15
  • 打赏
  • 举报
回复
快帮帮忙吧!

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧