安卓+apache ftp server上传文件遇到的问题:服务器ip地址、异步线程的使用
2017-04-20 18:52
603 查看
从安装好apache ftp server之后,手头就拿到了相关的代码,比较精简,但一直测试不成功。也有其他的事情搞得心烦意乱。大概搞了三天吧,我一直在修改ip地址,由于自己网络知识不扎实,再加上刚接触安卓,具体有很多东西也不熟,做了很多无用功。
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/fastcry.gif)
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/fastcry.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/cb4e94c34df3079bd70c302064bdba33.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/cb4e94c34df3079bd70c302064bdba33.gif)
好了,废话少说,进入正题。
本次使用的服务器是apache ftp server1.0.6.遇到的问题如下:
1、服务器ip地址
主要区分三个地址:127.0.0.1、 localhost、本机ip
127.0.0.1 : 回送地址,也称为环路地址。ping 127.0.0.1成功时表明TCP/IP协议在本机正常运行。一般用作本地机进程间通信,测试使用。传送过程并不经过网络,由于访问的是
自己,所以传输过程不进行任何 网络传输。
localhost :本地DNS解析的域名,可以配置成任意的IP地址,不过通常是127.0.0.1。可以打开本机c:\widoews\system32\driver\etc\hosts文件,看到最下面一行是
127.0.0.1 localhost 。当然这个可以随意更改,
本机ip地址:就是上网时用到的地址,ping 192.168.25.78就是我的本机地址,如果成功表明网卡正常工作。
在我这次使用的过程中,由于安卓虚拟器和apache服务器并不是同一ip地址,不过处在同一局域网内,所以使用的是本机IP地址。在真机上演示时,也必须遵循这个原则,在同一局域网内,传输地址是本机IP地址。
2、异步线程的使用
之前在开发的过程中,上传时会自动退出,logcat中也没什么提示。后来咨询了下大牛,找出原因是:上传过程属于后台操作,过程耗时,不使用于在UI线程中实现,因此采用后台操作。所以使用异步线程。
(1)使用thread操作
Thread m1=new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
UploadFile();//自己实现的上传函数
}
});
m1.start();(2)使用异步线程
AsyncTask是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.
导入包:import android.os.AsyncTask;
首先新建类:class DownloadTask extends AsyncTask<String, Integer, String>{
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
UploadFile(params);
return null;
}
}
将其实例化:
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/fastcry.gif)
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/fastcry.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/cb4e94c34df3079bd70c302064bdba33.gif)
![](https://oscdn.geek-share.com/Uploads/Images/Content/201711/cb4e94c34df3079bd70c302064bdba33.gif)
好了,废话少说,进入正题。
本次使用的服务器是apache ftp server1.0.6.遇到的问题如下:
1、服务器ip地址
主要区分三个地址:127.0.0.1、 localhost、本机ip
127.0.0.1 : 回送地址,也称为环路地址。ping 127.0.0.1成功时表明TCP/IP协议在本机正常运行。一般用作本地机进程间通信,测试使用。传送过程并不经过网络,由于访问的是
自己,所以传输过程不进行任何 网络传输。
localhost :本地DNS解析的域名,可以配置成任意的IP地址,不过通常是127.0.0.1。可以打开本机c:\widoews\system32\driver\etc\hosts文件,看到最下面一行是
127.0.0.1 localhost 。当然这个可以随意更改,
本机ip地址:就是上网时用到的地址,ping 192.168.25.78就是我的本机地址,如果成功表明网卡正常工作。
在我这次使用的过程中,由于安卓虚拟器和apache服务器并不是同一ip地址,不过处在同一局域网内,所以使用的是本机IP地址。在真机上演示时,也必须遵循这个原则,在同一局域网内,传输地址是本机IP地址。
2、异步线程的使用
之前在开发的过程中,上传时会自动退出,logcat中也没什么提示。后来咨询了下大牛,找出原因是:上传过程属于后台操作,过程耗时,不使用于在UI线程中实现,因此采用后台操作。所以使用异步线程。
(1)使用thread操作
Thread m1=new Thread(new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
UploadFile();//自己实现的上传函数
}
});
m1.start();(2)使用异步线程
AsyncTask是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.
导入包:import android.os.AsyncTask;
首先新建类:class DownloadTask extends AsyncTask<String, Integer, String>{
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
UploadFile(params);
return null;
}
}
将其实例化:
DownloadTask dTask = new DownloadTask(); dTask.execute(audioFile.getAbsolutePath());
相关文章推荐
- 异步文件上传到服务器遇到的问题
- 关于使用spring文件上传遇到的服务器中的图片访问不到报404的问题
- html使用iframe实现伪异步表单,实现无刷新上传文件时遇到的问题
- 在使用python requests 库时,通过post上传名称为中文文件时我遇到的问题
- 使用commons-fileupload.jar servlet上传文件 遇到的问题
- 转:关于我使用spring mvc框架做文件上传时遇到的问题
- gitlab使用过程中遇到大文件上传或下载失败的问题,总结一下
- nginx+tomcat使用apache的FtpClient上传图片时由于多线程问题导致的文件大小为0的问题
- PHP使用之上传文件到本地服务器(实现上传文件后页面内容不动、解决上传文件命名乱码后缀问题)
- IE9/IE10使用隐藏iframe异步上传文件问题的解决方案
- 使用ajax异步上传文件数组到后台服务器
- lamp使用php处理上传文件,调用move_uploaded_file函数遇到目录写权限问题及解决过程
- 小存储嵌入式设备上使用thttpd进行文件上传遇到的问题
- 表单包含file上传文件提交,使用ajaxSubmint或者ajaxForm 遇到的问题以及解决方法
- 使用Spring MVC 实现文件上传遇到的问题以及解决方案
- linux使用ftpclient文件上传遇到的问题
- 使用Apache 的 FTP Client获取FTP服务器上的文件列表FTP response 421 received.Server closed connection问题的解决
- Myeclipse中文件已经上传到服务器目录下,文件也没有被占用,但是页面中无法读取和使用问题的解决方法
- 关于我使用spring mvc框架做文件上传时遇到的问题
- 在tp3.2.3中使用 FormData 对象实现表单的文件上传功能遇到的一个问题及解决方法