Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# FTP客户端回复同步_C# - Fatal编程技术网

C# FTP客户端回复同步

C# FTP客户端回复同步,c#,C#,我正在用C#编写一个带有套接字的FTP客户端。 现在我有以下问题。当我通过控制连接套接字向服务器发送FTP命令时,我会尝试接收回复。但有时服务器会延迟发送数据。 我的结果支离破碎 现在我的代码是: public byte[] BinaryReceive() { byte[] bytes; using (MemoryStream memoryStream = new MemoryStream()) {

我正在用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;
 }
我怎样才能避免这种情况?目前,我实现了
Thread.Sleep()
a作为解决方法。但这不是解决办法

如有任何建议,将不胜感激

编辑:


我解决了这个问题。关键是,不要使用
Available>0
,而是等待回复结束。如果你没有线程,那么它就会工作。

睡眠(100)会导致连接超时吗?不会。数据稍后才可用。我的下一次接收包含上一个命令的消息。。