Java 处理异步响应
我正在从头开始构建一个FTP客户机,并且我注意到这种情况并不是立即发生的(这并不奇怪)。为命令获取相应代码的好方法是什么 下面是Filezilla服务器的输出示例。响应代码是每行末尾附近的三位数字Java 处理异步响应,java,asynchronous,ftp,response,Java,Asynchronous,Ftp,Response,我正在从头开始构建一个FTP客户机,并且我注意到这种情况并不是立即发生的(这并不奇怪)。为命令获取相应代码的好方法是什么 下面是Filezilla服务器的输出示例。响应代码是每行末尾附近的三位数字 (000057) 23/05/2010 19:43:10 - (not logged in) (127.0.0.1)> Connected, sending welcome message... (000057) 23/05/2010 19:43:10 - (not logged in) (12
(000057) 23/05/2010 19:43:10 - (not logged in) (127.0.0.1)> Connected, sending welcome message...
(000057) 23/05/2010 19:43:10 - (not logged in) (127.0.0.1)> 220-FileZilla Server version 0.9.12 beta
(000057) 23/05/2010 19:43:10 - (not logged in) (127.0.0.1)> 220-written by Tim Kosse (Tim.Kosse@gmx.de)
(000057) 23/05/2010 19:43:10 - (not logged in) (127.0.0.1)> 220 Please visit http://sourceforge.net/projects/filezilla/
(000057) 23/05/2010 19:43:10 - (not logged in) (127.0.0.1)> user anonymous
(000057) 23/05/2010 19:43:10 - (not logged in) (127.0.0.1)> 331 Password required for anonymous
在这种特殊情况下,我可能不希望异步实现这一点。除非发送命令和接收响应代码之间的延迟很大(这可能不适用于FTP),并且您可以安全地执行另一个命令,而不知道最后一个命令的结果(您可能无法),否则尝试异步实现这一点就不值得了 我会在发送命令字符串和接收完整响应之间阻止执行,即在伪代码中,您可能会有一个类似以下的执行方法:
希望这能有所帮助。的确如此。我还通过Apache的公共网络进行了挖掘。他们使用的是EventObject和EventListener的组合。对于响应,只要有代码并且结果行添加到ArrayList,就会在InputStreamReader上调用readLine()。似乎没有任何异步处理,超时可能由java.net类处理。