Java ftpclient应用程序无法连接

Java ftpclient应用程序无法连接,第1张

概述我是android和java编程的新手.我写以下代码以连接到ftp服务器publicclassNewMainActivityextendsActivity{TextViewDisplay;//declareapublicFTPclientobject.publicFTPClientmFTPClient=null;@OverrideprotectedvoidonCreate(BundlesavedInstanceState)

我是android和java编程的新手.我写以下代码以连接到ftp服务器

public class NewMainActivity extends Activity {TextVIEw display;//declare a public FTP clIEnt object.public FTPClIEnt mFTPClIEnt = null;@OverrIDeprotected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentVIEw(R.layout.activity_new_main);    final TextVIEw display = (TextVIEw) findVIEwByID(R.ID.tvResults);    try {         mFTPClIEnt = new FTPClIEnt();          // connecting to the host         mFTPClIEnt.connect("www.filegenIE.com",21);           // Now check the reply code, if positive mean connection success          if (FTPReply.isPositiveCompletion(mFTPClIEnt.getReplyCode())) {              // login using username & password              boolean status = mFTPClIEnt.login("user", "MyPassword");              // Set file Transfer Mode              mFTPClIEnt.setfileType(FTP.BINARY_file_TYPE);              mFTPClIEnt.enterLocalPassiveMode();              display.setText("Correct"+ String.valueOf(status)); //return status;          }        }catch(Exception e) {             display.setText(" Exception message is = "+e.getMessage()+" Reply code = "+mFTPClIEnt.getReplyCode());        }}

当我运行此代码时,没有得到任何特定的错误,但是程序没有执行mFTPClIEnt.connect方法,并跳转到“异常”部分,我得到“ null”作为异常getMessage,得到“ 0”作为ReplyCode.
我已经导入了所有必需的文件,例如

import org.apache.commons.net.ftp.FTP;import org.apache.commons.net.ftp.FTPClIEnt;import org.apache.commons.net.ftp.FTPReply;

我正在使用eclipse和ADT Build v22.0.1-685705.
我还在androID项目的lib中包含了commons-net-3.3,commons-net-3.3-sources和commons-net-examples-3.3文件,还包括了Java文件和
commons-net-3.3-src | src |主| Java |组织| apache |公地|创建文件夹org | net文件夹到AndroID项目的src文件夹apache |公地|净.
我不知道是什么问题.
在这方面,谁能帮助我.

可以使用商业ftp客户端访问同一服务器.

提前致谢.

解决方法:

我已经尝试过您的代码,它可以正常工作.根据您得到的响应代码,我假设尚未建立与服务器的连接.确保您已在清单文件中为您的应用授予INTERNET权限:

<uses-permission androID:name="androID.permission.INTERNET" /> 

编辑:从异常堆栈跟踪很明显,您正在尝试从主线程执行此代码.在AndroID 3.0(Honeycomb)或更高版本中,默认情况下不允许您在UI线程中执行任何网络调用.原因很简单:网络调用可能会无限期地阻塞,从而有效冻结应用程序UI.
您有两种解决方法:

懒惰方式-禁用therad检查网络呼叫:

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()                                     .permitAll()                                     .build();   StrictMode.setThreadPolicy(policy);

您始终可以使用再次启用线程检查

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()                                     .detectAll()                                     .penaltyLog()                                     .penaltyDeath()                                     .build();StrictMode.setThreadPolicy(policy);

正确的方法-使用AsyncTask从后台工作线程执行FTP调用.看一下here,以获取有关AsyncTasks的示例和全面说明.

总结

以上是内存溢出为你收集整理的Java ftpclient应用程序无法连接全部内容,希望文章能够帮你解决Java ftpclient应用程序无法连接所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1076159.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存