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

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

阅读更多

1、 先创建一个Java实现了Serializable接口的类FilePojo,代码如下:

 

// 必须实现Serializable接口否则无法调用ObjectOutputStream

// writeObject方法或者ObjectInputStream中的readObject方法

public class FilePojo implements Serializable

{

         private static final long serialVersionUID = 1L;

         private String fileName;            // 文件名称

         private long fileLength;             // 文件长度

         private byte[] fileContent;          // 文件内容

         public String getFileName()

         {

                   return fileName;

         }

         public void setFileName(String fileName)

         {

                   this.fileName = fileName;

         }

            public long getFileLength()

         {

                   return fileLength;

         }

         public void setFileLength(long fileLength)

         {

                   this.fileLength = fileLength;

         }

         public byte[] getFileContent()

         {

                   return fileContent;

         }

         public void setFileContent(byte[] fileContent)

         {

                   this.fileContent = fileContent;

        }

}

 

这个类将在服务器端和客户端都需要也会被用到。

2、编写服务端代码如下:

public class ObjectServer

{

         public static void main(String[] args) throws ClassNotFoundException

         {

                   ServerSocket serverSocket;

                   FileOutputStream fos;

                   try

                   {

                            serverSocket = new ServerSocket(433);

                            while(true)

                            {

                                      Socket clientSocket = serverSocket.accept();

         System.out.println("socket open");

                                     // clientSocket获取ObjectInputStream对象

                                     ObjectInputStream ois = new ObjectInputStream(clientSocket.getInputStream());

                                     // 读取从客户端传递过来的FilePojo对象

                                     FilePojo fpo = (FilePojo) ois.readObject();

                                     System.out.println(fpo.getFileName());

                                     System.out.println(fpo.getFileLength());

                                     // 初始化FileOutputStream对象fos

                                     fos = new FileOutputStream("D:\\" + fpo.getFileName());

                                     // fpo中的内容写入fpo

                                     fos.write(fpo.getFileContent(), 0, (int)fpo.getFileLength());

                                     fos.close();

                                     ois.close();

                            }

                   }

                   catch(IOException ioe)

                   {

                            System.out.println("socket error and closed");

                   }

         }

}

 

3、编写Android客户端端代码如下:

显示layout文件:main.xml

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout 

    xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent" >

         <Button android:id="@+id/btn1"

                   android:layout_width="fill_parent"

                   android:layout_height="wrap_content"

                   android:text="发送图片">

 

         </Button>

</LinearLayout>

再是Activty代码

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

分享到:
评论

相关推荐

    老罗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, ...

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

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

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

    其中,JSON是最常用的一种,因其简洁的人读性,广泛应用于API接口和配置文件。通过扩展,库还允许用户自定义序列化格式,以满足特定需求。 四、注解驱动的序列化配置 为了控制序列化过程,Kotlinx.Serialization...

    System.Runtime.Serialization.DLL.zip

    `System.Runtime.Serialization`提供了一系列的类来支持这两种操作,如`DataContractSerializer`和`XmlSerializer`,它们分别用于基于数据契约和XML的序列化。 **二、数据契约(DataContract)** 数据契约是.NET中...

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

    `oslo.serialization` 是一个在PyPI上发布的Python库,它专注于数据序列化和反序列化功能。这个2.2.0版本的压缩包`oslo.serialization-2.2.0.tar.gz`包含了该库的源代码,供开发者使用。 **oslo.serialization 概述...

    System.Runtime.Serialization.dll

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

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

    通过WebService与Android实现通信是跨平台开发中常见的一种方式,特别是在使用C#作为后端语言进行服务端开发,而Android应用作为前端时。本文将基于提供的文件信息,深入解析这一技术实现的关键步骤与原理。 ### ...

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

    首先,"C#最精简的微信企业号发送消息"这个标题暗示我们关注的是一个简单的C#程序,该程序可以向微信企业号发送消息。在微信企业号的API中,发送消息通常涉及到调用HTTP接口,通过POST请求将JSON格式的数据发送到...

    sirenix.serialization.dll

    sirenix.serialization.dll

    kotlinx-serialization-compiler-plugin.jar

    kotlinx-serialization-compiler-plugin.jar

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

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

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

    在C++编程中,序列化是一个重要的概念,它允许我们将对象的状态转换为可存储或可传输的数据格式,以便稍后能够恢复原始状态。Boost.Serialization库是C++社区广泛使用的序列化工具,它提供了丰富的功能来处理各种...

    加载与存储本地JSON文件

    在iOS和Android等移动开发平台中,经常需要处理本地数据,JSON作为一种轻量级的数据交换格式,被广泛应用。本文将详细讲解如何在应用程序中加载和存储本地JSON文件,以及涉及的设备沙盒目录概念。 首先,理解JSON...

    Boost::Serialization存储C++对象

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

    多文件传输

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

    ksoap2-android-.zip

    在实际使用中,Android应用首先需要导入KSOAP2库,然后创建一个SoapObject来表示即将发送的SOAP请求。接着,设置请求的命名空间、操作方法以及参数。之后,通过SoapSerializationEnvelope封装这个SoapObject,并指定...

    Android访问 web service asmx

    在Android开发中,有时我们需要与远程服务器进行交互,获取或发送数据。Web Service ASMX 是一种基于.NET框架的Web服务技术,它允许开发者创建和部署Web服务,供其他应用程序(包括Android应用)调用。本教程将深入...

Global site tag (gtag.js) - Google Analytics