我试着在他们的论坛上发帖(这个库的作者),然而,当涉及到自由软件时,他们确实需要几个月的时间才能回复(不能责怪他们)。
但不管怎样,我发现这个库的行为很奇怪--例如,我的应用程序的一个主要问题是,当有人试图登录(通过FTP)时,他们提供了正确的登录并输入了错误的密码,没有收到来自FTP服务器的回复。
我尝试在命令窗口中执行相同的操作,只是为了验证这不是FTP服务器的错误;FTP命令立即被接收到。
看起来就像这个库吃掉了这些命令。相同的动作经常会产生不同的结果。
有人能推荐一个稳定、可靠的库与Compact framework一起使用吗?或者在这个问题上提供一些线索...?
发布于 2009-08-14 20:52:39
我修改了ConnectThread()内部的源代码,如下所示:
// if a PWD is required, send it
if( response.ID == 331 )
{
response = SendCommand("PASS " + m_pwd, false);
//ADDED THIS - try again.
if (response.ID == 0)
{
response = SendCommand("PASS " + m_pwd, false);
}
//end of my addition
if( !((response.ID == 202) || (response.ID == 230)) )
{
m_cmdsocket.Close();
m_cmdsocket=null;
Disconnect();
m_connected = false;
return;
}
}这个问题解决了一段时间,直到现在它又开始这样做了,罪魁祸首似乎是当0作为FTP服务器的响应返回时,连接就会停止。我不确定这是套接字问题还是其他一些晦涩难懂的问题,但我想我会放弃这一点。
发布于 2009-08-14 01:47:56
您使用的是哪个FTP集、SDF中的基于流的类还是separate one in the Forums?如果你使用的是论坛上的那个(实际上是我推荐的那个),那么你已经找到了源码。这是我从头开始写的,不看RFC的内容。这真的很简单,如果是“吃”响应,很可能是一个超时问题,尽管它应该很容易放入一个断点,看看它在哪里分离。
https://stackoverflow.com/questions/1275416
复制相似问题