0

ソケットを使用して C# で FTP クライアントを作成しています。今、私は次の問題を抱えています。制御接続ソケットを介して FTP コマンドをサーバーに送信すると、応答を受信しようとします。ただし、サーバーがデータを送信するのに遅延が生じることがあります。私の結果は断片的です。

今私のコード:

public byte[] BinaryReceive()
{
       byte[] bytes;
       using (MemoryStream memoryStream = new MemoryStream())
             {
                        byte[] buffer = new byte[4056];
                        while (_controlConnectionSocket.Available > 0)
                        {
                            int count = _controlConnectionSocket.Receive(buffer, buffer.Length, SocketFlags.None);
                            memoryStream.Write(buffer, 0, count);

                            Thread.Sleep(100);
                        }
                        bytes = memoryStream.ToArray();

              }
       return bytes;
 }

どうすればこの状況を回避できますか? 現在、回避策として aを実装しましThread.Sleep()た。しかし、これでは解決できません。

任意の提案をいただければ幸いです。

編集:

問題を解決しました。重要なのは、Available > 0代わりに使用しないで、返信が終了するのを待つことです。それが機能するより..

4

0 に答える 0