请问如何用INDY的TIdTCPServer与TIdTCPClient进行局域网的文件传输 (50分)

  • 主题发起人 主题发起人 liuliu1018
  • 开始时间 开始时间
L

liuliu1018

Unregistered / Unconfirmed
GUEST, unregistred user!
服务器端的代码:
在serverExcute事件中
sfilename := inttostr(GetTickCount)+'.txt';
try
streamimg:=tfilestream.Create(sfilename,fmCreate);
readstream(streamimg,-1,false);
streamimg.Free;
except
showmessage('保存错误');
end;
客户端代码:
在发送文件的按钮事件中
strm:=tfilestream.Create('c:/demo.txt',fmOpenRead);
IdTCPClient1.OpenWriteBuffer();
IdTCPClient1.WriteStream(strm);
IdTCPClient1.CloseWriteBuffer;
strm.Free;
遇到的问题是:
每次客户端利用流发送文件后,服务器端的代码就停留在readstream(streamimg,-1,false);这里,关闭客户端程序后,服务器端抱错。
请问如何解决呢?
 
在INDY中现成的例子,去看看!
 
不行啊,楼上大哥
 
什么意思??INDY的实例中好像有一个传图片的例子!!!
 
我跟踪了服务器端的代码,当客户端发送了一个文件后,服务器端代码就停留在readstream(streamimg,-1,false);这行不继续执行了,这时关闭客户端程序,服务器端代码才继续执行,并且抱错
 
看帮助:
Note: When AByteCount is -1, and AReadUntilDisconnected is False, it is assumed that the first 4-bytes in the Indy buffer contains the length of buffered data in Internet format. ReadStream uses ReadInteger to convert the value to Intel byte-order prior to reading the remaining data from the Indy buffer.
 
这个我已经看过了,跟我的程序没有关系
 
怎么没人回答啊?顶一下
 
Delphi盒子上的例子有相关的
 
加一个IdAntiFreeze试试
 
还有个问题要问一下大家,怎么样在indyTCPServer的onexcute中访问XMLDOCUMENT 控件呢?
 

Similar threads

后退
顶部