用TCP/IP做文件续传

ZDNet软件频道 时间:2009-12-06 作者:论坛管理 | zdnet安全频道 我要评论()
本文关键词:TCP/IP
利用 TWinSocketStream 可以做到.TServerWinSocket serverSocket;TClientWinSocket clientSocket,TFileStream inFile, outFile;假设各 Stream 都己 created。

tcp/ip  os  ie   

利用 TWinSocketStream 可以做到.

TServerWinSocket serverSocket;
TClientWinSocket clientSocket
TFileStream inFile, outFile;
// 假设各 Stream 都己 created

// 在 Server 端
// Client send 一个命令告知 Server 要由 536 bytes 开始传

 inFile.Position := 536;
wtih TWinSocketStream.Create(serverSocket, 60000) do
begin
CopyFrom(inFile, inFile.Size - inFile.Position + 1);
Free;
end;

// 在 Client 端 OnReadEvent 中
memStream = TMemoryStream.Create;
memStream.Size = TOTAL_FILE_SIZE;
memStream.Position := 0;
socketStream := TWinSocketStream.Create(clientSocket, 60000) do
if socketStream.WaitForData(60000) then // give the client 60 seconds writing
socketStream.Read(PCharArray(memStream.Memory)^, TOTAL_FILE_SIZE)
memStream.Position := 0;
outFile.Position := 536;
outFile.CopyFrom(memStream);

// 释放全部的对象


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134