0

PCで実行されているIndy FTPサーバーに接続するDelphi XE5 Androidアプリがあります(サーバーはIndy 10 IdFTPServerデモです)。サーバーから同じファイルを (2 秒ごとに) FTP.Get し、その内容 (24 文字) を Android デバイスのラベルに表示します。常に 16 回動作し、Android アプリは終了します。サーバーの観点からは、「10054、ピアによって接続がリセットされました」と報告されます

コードは次のとおりです。

procedure TForm3.FetchTimerTimer(Sender: TObject);  
var  
    str : string;  
begin
    inc(FetchCnt);    
    aStream.Position := 0;  
    FTP.Get('Time1.txt', aStream);  
    aStream.Position := 0;  
    str := aStream.ReadString(255);  
    CmdLabel.text := inttostr(FetchCnt) + ') ' + str;  
end;  

16はどこかのマジックナンバーですか?16 回目の FTP の後まで期待どおりに動作します。アイデアを得る ?

4

1 に答える 1

0

TIdFTP同じ接続で実行できる転送の数を制限するものは何もありません。表示されているエラーは、サーバー側で接続が失われていることを意味します。おそらく、デモでは16回の転送しか許可されていませんが、わかりません(あなたが言及したデモに精通していません)。または、使用できるポートの数が限られている可能性があります。転送をアクティブ モードまたはパッシブ モードで実行していますか? クライアントとサーバーの間にパケット スニファを配置し、ネットワーク上で実際に何が起こっているかを確認することをお勧めします。

于 2013-10-22T20:07:31.023 に答える