`
zhuqiang5138
  • 浏览: 31922 次
  • 性别: 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 

 

分享到:
评论

相关推荐

    老罗Android开发 7服务器端Web编程-有源码

    在Android开发过程中,服务器端Web编程是至关重要的一个环节,特别是在构建移动应用时,与后端服务器的交互是实现功能的基础。"老罗Android开发 7服务器端Web编程"课程可能涵盖了如何在Android客户端与Web服务器进行...

    Android代码-kotlinx.serialization

    Kotlin cross-platform / multi-format reflectionless serialization Kotlin serialization consists of a compiler plugin, which automatically produces visitor code for classes, and runtime library, ...

    kotlinx.serialization,Kotlin跨平台/多格式序列化.zip

    【Kotlinx.Serialization详解】 Kotlinx.Serialization是一个强大的开源库,专门为Kotlin编程语言提供了跨平台的序列化解决方案。这个库允许开发者将数据对象转换成字节流或JSON等不同格式,反之亦然,这对于数据...

    局域网通信 服务器端和客户端

    在这个项目中,"Server"文件可能包含了服务器端的Socket实例,用于监听来自客户端的连接请求,创建套接字并绑定到特定的IP地址和端口号上。一旦有客户端连接,服务器端就可以接收数据并发送响应。 客户端("client...

    System.Runtime.Serialization.DLL.zip

    《深入理解System.Runtime.Serialization.DLL及其在.NET框架中的作用》 在.NET框架中,`System.Runtime.Serialization`命名空间是处理序列化和反序列化的核心组件,而`System.Runtime.Serialization.dll`则是这个...

    ksoap2-android3.6.2

    1. 引入库:将提供的jar文件(ksoap2-android3.6.2.jar)添加到项目的类路径或依赖管理中。 2. 创建SOAP请求:构造一个SoapObject,设置方法名和参数。 3. 设置SOAP Header(如果需要):例如,添加认证信息或自定义...

    PyPI 官网下载 | oslo.serialization-2.2.0.tar.gz

    **PyPI 官网下载 | oslo.serialization-2.2.0.tar.gz** PyPI(Python Package Index)是Python开发者获取和分享开源软件包的主要平台。`oslo.serialization` 是一个在PyPI上发布的Python库,它专注于数据序列化和反...

    sirenix.serialization.dll

    sirenix.serialization.dll

    kotlinx-serialization-compiler-plugin.jar

    kotlinx-serialization-compiler-plugin.jar

    System.Runtime.Serialization.dll

    《深入解析System.Runtime.Serialization.dll》 System.Runtime.Serialization.dll是.NET Framework中的一...在实际开发中,我们需要根据项目需求选择合适的序列化技术,并利用相关工具和资源确保dll文件的正确使用。

    C#最精简的微信企业号发送消息

    开发者需要在服务器端监听这个URL,解析接收到的JSON数据,并进行相应的业务逻辑处理。 在提供的压缩包文件"WeiXinTest"中,可能包含了实现这些功能的源代码,包括JsonHelper类、WeChatService类,以及用于配置和...

    通过webservice与android实现通信(C#与android)

    虽然文件中提到Android不能发送复杂数据给WebService,但这并不完全准确。实际上,通过适当的编码(如JSON或XML),Android可以发送和接收复杂数据类型。在Android客户端,可以使用HttpURLConnection或者第三方库如...

    Android-用于Kotlin序列化的Retrofit2Converter.Factory

    1. **添加依赖**:首先,在项目构建文件(build.gradle)中添加Retrofit2和Kotlinx.Serialization的相关依赖。对于这个例子,可能需要添加如下依赖: ```groovy implementation '...

    结构体序列化读写二进制文件类

    在IT领域,结构体序列化和二进制文件读写是常见的数据存储和传输技术。这类技术主要用于将复杂的结构化数据转换成二进制格式,以便于高效地存储到磁盘或在网络上传输。以下是对"结构体序列化读写二进制文件类"这一...

    Boost::Serialization存储C++对象

    Boost::Serialization是C++库中的一个模块,它提供了一种序列化和反序列化对象的能力。这个库使得能够将复杂的C++对象结构保存到文件、数据库或者网络流中,然后在需要时重新加载,这对于数据持久化、版本控制以及跨...

    C++11 下使用 Boost.Serialization 库实现智能指针的序列化

    总结来说,C++11下使用Boost.Serialization库实现智能指针的序列化涉及到理解不同类型的智能指针的特性,以及如何利用Boost库提供的工具来适应这些特性。对于`std::unique_ptr`,我们需要利用`make_nvp`创建命名值对...

    多文件传输

    5. 接收文件:服务器端也需要创建Socket,监听特定端口,接收客户端发送的数据块,并按顺序重组文件。 6. 关闭连接:完成传输后,关闭Socket连接。 三、UDP多文件传输 UDP不保证数据顺序和完整性,因此在实现多...

    Android代码-jax-rs-kotlinx-serialization

    JAX-RS Kotlinx Serialization A message body reader/writer and parameter converter which uses kotlinx-serialization. Usage val resourceConfig = new ResourceConfig(); resourceConfig.register(Json....

    hystrix-serialization-1.5.18.jar

    hystrix-serialization-1.5.18.jar

Global site tag (gtag.js) - Google Analytics