求教一个关于NMFTP的错误(WSAENOTCONN)

nather 2003-11-28 02:54:16
小子有一段程序,用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
...全文
67 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
nather 2003-12-01
  • 打赏
  • 举报
回复
为什么要先Sleep呢?
yaveymao 2003-11-28
  • 打赏
  • 举报
回复
关闭连接后尝试:
Sleep(3000);
nather 2003-11-28
  • 打赏
  • 举报
回复
我检查了,的确是关掉了的。
叶子哟 2003-11-28
  • 打赏
  • 举报
回复
是不是你上一次的连接未关?

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧