首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用enterprisedt的ftp java框架调用disconnect()时重置连接

使用enterprisedt的ftp java框架调用disconnect()时重置连接
EN

Stack Overflow用户
提问于 2010-05-28 23:18:15
回答 1查看 2.7K关注 0票数 2

我在使用enterprisedt java ftp framework.从ftp服务器断开连接时遇到了问题

我不能简单地在FileTransferClient对象上调用disconnect()而不会收到错误。

除了连接到服务器,然后断开连接之外,我没有做任何事情:

代码语言:javascript
复制
        // create client
        log.info("Creating FTP client");
        ftp = new FileTransferClient();

        // set remote host
        log.info("Setting remote host");
        ftp.setRemoteHost(host);
        ftp.setUserName(username);
        ftp.setPassword(password);

        // connect to the server
        log.info("Connecting to server " + host);
        ftp.connect();
        log.info("Connected and logged in to server " + host);

        // Shut down client
        log.info("Quitting client");
        ftp.disconnect();

        log.info("Example complete");

运行此命令时,日志为:

代码语言:javascript
复制
INFO [test] 28 maj 2010 16:57:20.216 : Creating FTP client
INFO [test] 28 maj 2010 16:57:20.263 : Setting remote host
INFO [test] 28 maj 2010 16:57:20.263 : Connecting to server x
INFO [test] 28 maj 2010 16:57:20.979 : Connected and logged in to server x
INFO [test] 28 maj 2010 16:57:20.979 : Quitting client
ERROR [FTPControlSocket] 28 maj 2010 16:57:21.026 : Read failed ('' read so far)

和堆栈跟踪:

代码语言:javascript
复制
com.enterprisedt.net.ftp.ControlChannelIOException: Connection reset
at com.enterprisedt.net.ftp.FTPControlSocket.readLine(FTPControlSocket.java:1029)
at com.enterprisedt.net.ftp.FTPControlSocket.readReply(FTPControlSocket.java:1089)
at com.enterprisedt.net.ftp.FTPControlSocket.sendCommand(FTPControlSocket.java:988)
at com.enterprisedt.net.ftp.FTPClient.quit(FTPClient.java:4044)
at com.enterprisedt.net.ftp.FileTransferClient.disconnect(FileTransferClient.java:1034)
at test.main(test.java:46)

需要注意的是,我可以毫不费力地连接到服务器,并在服务器上做一些事情,比如获取当前工作目录中的文件列表。但是,出于某种原因,我不能断开连接!我尝试过使用主动和被动模式。

顺便说一下,上面的例子是从他们自己的例子中复制/粘贴的。我不能找到任何与此相关的谷歌搜索,所以我希望你有任何建议,或经验与这个问题。

EN

回答 1

Stack Overflow用户

发布于 2010-05-29 00:22:50

尝试使用以下命令启用跟踪

代码语言:javascript
复制
com.enterprisedt.util.debug.Logger.setLevel(com.enterprisedt.util.debug.Level.DEBUG);

这将让您观察库和ftp服务器之间的通信。

尝试使用命令行客户端打开到ftp服务器的连接。连接、登录,验证是否一切正常。然后键入quot quit。向ftp服务器发送明确的quit命令。您应该得到一个221226响应。如果您获得任何其他代码,或者如果连接刚刚关闭,那么您面临的是一个不兼容的FTP服务器。

如果是这种情况,您也可以尝试使用disconnect(true),因为这只会关闭连接,而不是尝试正常关闭。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2930216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档