我正在用 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
我等回复结束。比它有效..