客户端用clientsocket,服务器端用serversocket,clientsocket调用sendstream()发送文件,下面是server端的接收代码:
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
stream:tmemorystream;
strln:string;
nrecved:integer;begin
stream:=tmemorystream.Create;
try
while true do
begin
nrecved:=socket.ReceiveBuf(buffer,sizeof(buffer));
if nrecved<=0 then goto break
else
stream.Write(buffer,nrecved);
sleep(50);
end;
stream.Position:=0;
stream.SaveToFile('e:\minedb.mdb');
finally
stream.Free;
end;
end;
我的问题是:第一次执行到stream.SaveToFile('e:\minedb.mdb');后文件正常被传送。
结下来又执行 了一次ServerSocket1ClientRead,因为这时的nrecved是零,执行到stream.SaveToFile('e:\minedb.mdb');后又把正确的e:\minedb.mdb覆盖掉了。怎么办
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
stream:tmemorystream;
strln:string;
nrecved:integer;begin
stream:=tmemorystream.Create;
try
while true do
begin
nrecved:=socket.ReceiveBuf(buffer,sizeof(buffer));
if nrecved<=0 then goto break
else
stream.Write(buffer,nrecved);
sleep(50);
end;
stream.Position:=0;
stream.SaveToFile('e:\minedb.mdb');
finally
stream.Free;
end;
end;
我的问题是:第一次执行到stream.SaveToFile('e:\minedb.mdb');后文件正常被传送。
结下来又执行 了一次ServerSocket1ClientRead,因为这时的nrecved是零,执行到stream.SaveToFile('e:\minedb.mdb');后又把正确的e:\minedb.mdb覆盖掉了。怎么办
解决方案 »
- delphi打印问题
- 请兄弟们介绍一个delphi的曲线控件,最好简介一下啊
- messagebox的提示窗下面能增加一行提示吗?
- fastreport3.0很奇怪的问题
- 怎么判断输入的一串文本里面的每个字是字符还是数字。
- 监控系统如何开发?
- 一个label的 Capion属性内容中 怎样设置 不同的字体与颜色 谢谢!
- 用Tquery查询二个表放入dbgrid中,对其修改,如果查询语句里有in就不能修改,为何,如何修改???????
- 200分!!如何使有背景图的TreeView文字背景透明?
- 小弟最近装上delphi5,为什么控件图标乱了,有没有方法解决?
- 为何我修改了打印纸尺寸但不起作用?
- 一个离线浏览器的例子,不过是新闻组的如何可以修改成为http的吗?
stream.SaveToFile('e:\minedb.mdb'+inttostr(i));
inc(i);
可能是这一步给忘了吧