我尝试在他们的主板上发帖(这个图书馆的作者),但是在谈到自由软件时,他们需要几个月才能回复(不能责怪他们)。
但无论如何 我发现这个库表现得很奇怪 - 例如,我的应用程序的一个主要问题是当有人试图登录(通过FTP)时,他们提供正确的登录并输错密码,没有从FTP服务器收到回复。
我尝试从命令窗口执行相同操作,只是为了验证它不是FTP服务器的错误;和FTP命令是即时收到的。
这看起来好像这个库吃掉了命令。同样的行为经常会产生不同的结果。
任何人都可以推荐一个稳定,可靠的库与Compact框架一起使用吗?或者对这个问题有所了解......?
答案 0 :(得分:1)
我在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服务器的响应回来时,连接就停止了。我不确定这是一个套接字问题还是其他一些模糊不清的问题,但我想我现在会放弃。
答案 1 :(得分:0)
您使用的是哪个FTP集,SDF中的基于流的类,还是separate one in the Forums?如果您正在使用论坛中的那个(我实际推荐的那个),那么您就拥有了源代码。我通过RFC看不到任何东西从头开始编写了这个。这真的非常非常简单,如果它正在“吃”响应,它可能是一个超时问题,尽管它应该很容易放在一个断点并看看它在哪里分开。