`
zhuqiang5138
  • 浏览: 32415 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

android利用Serialization向服务器端发送任意的文件(二)

阅读更多

 

public class AndroidClientActivity extends Activity implements OnClickListener{

 

         private Button btn1;

         private String filePath = "/sdcard/image/";

         private String fileName = "bln.jpg";

    @Override

    public void onCreate(Bundle savedInstanceState){

 

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

        btn1 = (Button)this.findViewById(R.id.btn1);

        btn1.setOnClickListener(this);

    }

         public void onClick(View v)  {

 

                   try {

                            // 建立和服务器的连接

                            Socket socket = new Socket("192.168.0.10", 6666);

                            // 创建FilePojo对象

                            FilePojo fpo = new FilePojo();

                            // 设定文件名

                            fpo.setFileName(fileName);

 

                            // 设定文件大小

                            File f = new File(filePath + fileName);

                            long fileLength = f.length();

                            fpo.setFileLength(fileLength);

                            // 读取文件内容,并将其转换为byte[]

                            FileInputStream fis = new FileInputStream(filePath + fileName);

                            byte[] fileContent = new byte[(int) fileLength];

                            fis.read(fileContent, 0, (int) fileLength);

                            fpo.setFileContent(fileContent);

                           

                            // FilePojo对象fpo写到Socket client指定的输出流

                            long start = System.currentTimeMillis();

                            ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream());

                            oos.writeObject(fpo);

                            long end = System.currentTimeMillis();

                            Toast.makeText(this.getApplicationContext(), "It takes " + (end - start) + "ms", Toast.LENGTH_LONG).show();

                            oos.flush();

                            oos.close();

                   }

                   catch(Exception ioe) {

 

                            ioe.printStackTrace();

                   } }}

下面就是在AndroidManifest.xml中增加permission权限如下

<!-- 表示该程序可以读取sd卡上的内容 -->

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>.

<!-- 表示该程序可以联网 -->

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

4、运行。

先运行服务端ObjectServer,再在Android手机上运行客户端AndroidClientActivity 

 

分享到:
评论

相关推荐

    webservice接收安卓上传图片

    3. **C#接收数据**:在C#服务器端,可以使用ASP.NET的`System.Web.Script.Serialization`或`Newtonsoft.Json`库来解析接收到的Base64字符串。首先,你需要从HTTP请求的Body中读取字符串,然后解码回原始的二进制数据...

    Webservice传递泛型的案例,包括web服务端和mobile端

    在这个特定的案例中,我们关注的是在Web服务(WebService)中如何处理泛型,以及如何在移动设备(mobile端)上与之交互。泛型是C#编程语言中的一个重要特性,它允许我们在代码中创建可重用的类型安全的数据结构,而...

    fastjson:Java的快速JSON解析器

    在服务器端和android客户端上提供最佳性能 提供简单的toJSONString()和parseObject()方法,将Java对象转换为JSON,反之亦然 允许将已有的不可修改的对象与JSON相互转换 Java泛型的广泛支持 允许对象的自定义表示...

    毕设:基于PyQT+朴素贝叶斯的文本分类算法的文本分类系统,该系统具有qt桌面端和web端.zip

    Qt支持 Windows、Linux/Unix、Mac OS X、Android、BlackBerry、QNX等多种平台,并为这些不同的平台提供了统一的开发环境。 面向对象 C++是完全面向对象的,这一点和Objective-c等在开发很相似。而Qt又是基于C++一...

    joblib-1.1.0-py2.py3-none-any.whl

    该资源为joblib-1.1.0-py2.py3-none-any.whl,欢迎下载使用哦!

    MATLAB/Simulink中Buck-Boost变换器开环与闭环控制仿真建模详解

    内容概要:本文详细介绍了如何使用MATLAB/Simulink R2015b搭建Buck-Boost变换器的开环和闭环控制仿真模型。首先,作者解释了Buck-Boost变换器的基本构成及其在电源设计中的重要性。接着,逐步指导读者构建开环模型,包括设置关键参数如PWM频率、占空比、输入电压等,并展示了开环控制下的输出特性。随后,引入了PID控制器进行闭环控制,强调了PID参数的选择与调整方法,以及如何通过增加电压采样和误差比较来提高系统的稳定性。此外,还分享了一些常见的仿真错误及解决方案,如电感值选取不当、二极管模型过于理想等问题。最后,提供了几个有趣的实验案例,如动态改变占空比、突变负载等,以展示闭环控制的优势。 适合人群:具有一定电力电子和MATLAB/Simulink基础的技术人员或学生。 使用场景及目标:适用于希望深入理解Buck-Boost变换器工作原理及其控制策略的研究者和技术爱好者。通过动手实践,掌握开环与闭环控制的区别,学会优化PID参数,提升电源设计能力。 其他说明:文中附有多处代码片段和实用技巧,有助于读者更好地理解和应用所学知识。同时提醒读者注意不同MATLAB版本间的兼容性问题。

    2023年上海市高等学校计算机等级考试.docx

    2023年上海市高等学校计算机等级考试.docx

    能检测死锁,输出相关代码便于排查

    能检测死锁,输出相关代码便于排查

    电子商务物流业务管理教材.pptx

    电子商务物流业务管理教材.pptx

    基于stm32的控制底层

    基于stm32的控制底层

    2023年全国计算机等级考试三级数据库试题.doc

    2023年全国计算机等级考试三级数据库试题.doc

    2023年计算机二级考试操作题真题.doc

    2023年计算机二级考试操作题真题.doc

    2023年自考管理系统中计算机应用试题及答案.doc

    2023年自考管理系统中计算机应用试题及答案.doc

    《基于YOLOv8的社区健身步道夜间照明故障检测系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    2023年电子科技秋网与网站设计在线作业.doc

    2023年电子科技秋网与网站设计在线作业.doc

    电机控制领域基于脉振高频电压注入的无速度传感器控制系统

    内容概要:本文详细介绍了基于脉振高频电压注入的无速度传感器控制系统。该方法通过向电机定子绕组注入高频电压信号(如2kHz),利用高频响应电流中的转子位置信息进行实时定位。文中展示了具体的代码实现,包括信号注入、带通滤波、正交锁相环以及位置跟踪观测器的设计。此外,讨论了参数整定、抗干扰措施(如伪随机频移键控)和实际调试过程中遇到的问题及其解决方案。该方法适用于低速或零速情况,能够显著提高位置估计的准确性。 适合人群:从事电机控制、自动化控制领域的工程师和技术研究人员。 使用场景及目标:①用于工业伺服系统中,特别是那些对成本敏感或安装空间有限的应用;②解决传统方法在低速或零速情况下无法准确估计转子位置的问题;③提供一种可靠的无速度传感器控制方案,减少硬件成本和维护难度。 其他说明:该方法虽然在低速时表现出色,但在高速时精度有所下降,可以通过混合观测策略进行优化。同时,实际应用中需要注意高频信号带来的额外损耗和参数敏感性问题。

    2023年计算机二级基础知识重点总结.docx

    2023年计算机二级基础知识重点总结.docx

    joblib-1.1.0.tar.gz

    该资源为joblib-1.1.0.tar.gz,欢迎下载使用哦!

    安-225大型运输机实体拼装模型

    An-225大型运输机实体装配模型由225个实体零件基元组成,分为21个子装配模块。 该模型是通过缩放一个基本的8.5英寸x11英寸三视图原理图而开发的。 因此,其精度有所降低。

    使用matlab编程GUI 实现WGS84-CGCS2000坐标转换.zip

    matlab

Global site tag (gtag.js) - Google Analytics