FTP客户端回复同步

时间:2012-10-11 18:56:02

标签: c#

我正在使用套接字在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;
 }

我该如何避免这种情况? Currenty我实现了Thread.Sleep() a作为解决方法。但这不是解决方案。

任何建议都将不胜感激。

修改

我解决了这个问题。关键是,不要使用Available > 0而是等待回复结束。比它的工作..

0 个答案:

没有答案