哎!
我正在尝试获取一个 ftp 文件列表,并且已经有一个小型库可以做到这一点。问题是 Socket.Receive() 函数在收到所有数据之前不会阻塞。当我在该行设置断点时,它会接收所有数据,但如果我不这样做,则只有 38 个字节(应该在 380 左右)。
这是代码:
While True
Dim bytes As Integer = cSocket.Receive(buffer, buffer.Length, SocketFlags.None)
mes += ASCII.GetString(buffer, 0, bytes)
If bytes < buffer.Length Then
Exit While
End If
End While
正如我所说:如果断点设置在 .Receive 部分的行中,它会起作用。我可以使用一种解决方法来保证一个额外的循环,但这似乎很脏。有任何想法吗?
//编辑:所以让我添加更多信息。我不知道我会收到多少数据。该代码来自从 ftp 服务器接收数据的函数。我以为当消息以 CRLF 结尾时我可以停止,但我不能这样做,因为列出的每个文件之间都有一个 CRLF。示例:file1.textCRLFfile2.txtCLRFfile3.txtCRLF
有时,当我调用接收时,即使有更多文件要列出,它也只会返回一个最后带有 CRLF 的文件。所以这种情况对我来说似乎不稳定。