求教一个关于NMFTP的错误(WSAENOTCONN)
小子有一段程序,用C++ Builder的TNMFTP控键做client和服务器进行Ftp传输。第一次打开包含这个控键的Form,执行FTP功能,都能够成功。然后把这个Form关掉,再开一次,这一次再进行FTP就会出现一个WSAENOTCONN的异常。
我debug跟踪,看到第二次输入的Host,Port,UserID,Password都没有问题。连接前的NMFTP1->Connected也是false的,但一走到NMFTP1->Connect(),就会抛出异常。
多次尝试,都没有找到问题所在,请各位大虾不吝指教。
程序片断
TNMFTP *NMFTP1;
NMFTP1->Host = Hostip;
NMFTP1->Port = 21;
NMFTP1->UserID = Usr;
NMFTP1->Password = Pass;
try
{
NMFTP1->Connect();
DirLocate = NMFTP1->CurrentDir;
DirLocate = DirLocate + "/IDD007RC";
NMFTP1->ChangeDir(DirLocate);
}
catch (...)//catch all exception
{
return false;
}
。。。。。。
NMFTP1->Disconnect();
另从winerror.h中找到了WSAENOTCONN的定义:
// MessageId: WSAENOTCONN
//
// MessageText:
//
// A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.
//
#define WSAENOTCONN 10057L