我做的文件下载,但是有时候只能得到8k文件,有时候就能得到全部大小的文件。不知道是什么原因。 客户端: AFile:=TFileStream.Create(filename,fmOpenWrite or fmCreate ); tcpclient.ReadStream(aFile, -1, True); aFile.Free; 服务端: with tcpserver do begin OpenWriteBuffer; WriteStream (fileStream); CloseWriteBuffer; end;
如果大家认为分数不够的话,可以在加。要多少自己说,
谢谢。
到这下这个类看看!
WGYKING TCP协议
支持SOCKS5代理
}interface
uses
Classes,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdSocks,
IdIOHandler, IdIOHandlerSocket;type
TSocksTCPClient = Class(TIdTCPClient)
private
FTempIOHandler: TIdIOHandlerSocket;
FTempSocksInfo: TIdSocksInfo;
public
constructor Create(AOwner: TComponent); override;
end;procedure Register;implementationprocedure Register;
begin
RegisterComponents('WGYKING', [TSocksTCPClient]);
end;{ TSocksTCPClient }constructor TSocksTCPClient.Create(AOwner: TComponent);
begin
inherited;
FTempIOHandler := TIdIOHandlerSocket.Create(Self);
FTempIOHandler.Name := 'IdIOHandlerSocket';
FTempIOHandler.OnStatus := OnStatus;
FFreeIOHandlerOnDisconnect := False;
IOHandler := FTempIOHandler;
FTempIOHandler.SetSubComponent(True); FTempSocksInfo := TIdSocksInfo.Create(Socket);
FTempSocksInfo.Name := 'IdSocksInfo';
Socket.SocksInfo := FTempSocksInfo;
FTempSocksInfo.SetSubComponent(True);
end;end.
IdIOHandlerSocket
IdSocksInfo
IdTCPClient然后把他们的关系连一下稍微设置一下就是了!
客户端:
AFile:=TFileStream.Create(filename,fmOpenWrite or fmCreate );
tcpclient.ReadStream(aFile, -1, True);
aFile.Free;
服务端:
with tcpserver do
begin
OpenWriteBuffer;
WriteStream (fileStream); CloseWriteBuffer;
end;