通过TCP套接字将对象从java服务器发送到android客户端

通过TCP套接字将对象从java服务器发送到android客户端,java,android,sockets,serialization,tcp,Java,Android,Sockets,Serialization,Tcp,我打算使用objectOutputStream,但听说这是不可靠的,因为不同的java版本可能会以不同的方式反序列化对象。关于“可怕的跨架构实践…” 那么,我如何在这些设备之间发送对象和数组,接收端可以将适当的对象或数组数据拼凑在一起呢?通过“java服务器”,您使用的是哪种协议 一个选项是RPC,它在java.rmi中定义 如果您使用http,最简单的选择是在tomcat/jetty中实现一个小servlet并使用restful服务 通过“java服务器”,数据格式可以是xml、json、bi

我打算使用objectOutputStream,但听说这是不可靠的,因为不同的java版本可能会以不同的方式反序列化对象。关于“可怕的跨架构实践…”


那么,我如何在这些设备之间发送对象和数组,接收端可以将适当的对象或数组数据拼凑在一起呢?

通过“java服务器”,您使用的是哪种协议

一个选项是RPC,它在java.rmi中定义

如果您使用http,最简单的选择是在tomcat/jetty中实现一个小servlet并使用restful服务


通过“java服务器”,数据格式可以是xml、json、bin等,您使用的是哪种协议

一个选项是RPC,它在java.rmi中定义

如果您使用http,最简单的选择是在tomcat/jetty中实现一个小servlet并使用restful服务


数据格式可以是xml、json、bin等

编辑:只需阅读您正在做的事情。您可能不需要web服务器。很多人推荐它是因为web服务器提供了大量支持。您当然可以使用TCP或UDP在服务器和客户端之间进行通信。如果您想要数据交换,您需要一些协议,这里的大多数人都熟悉XML或JSON

如果你需要灵感,试试看一些协议,比如FTP,甚至Bittorrent

Web服务器案例:

我为大学作业编写了一个JavaWeb服务器。如果您对TCP/IP有很好的了解,web服务器实际上是非常简单的。代码分散在网络上的每一个地方去做,虽然有点难以理解到底发生了什么,但是一旦你做了,它就不坏了

您肯定应该查看RFC for HTTP,即使这些内容倾向于使用法律术语。除此之外,在服务器上,您基本上是逐行读取字符串,并且应该能够知道在服务器上要做什么(例如GET/somefile.html HTTP/1.0)。只需在这些行上执行System.out.println,然后从那里开始。客户端代码也是如此。您还可以使用telnet查看web服务器的功能

为了进行测试,我建议您尝试使用常规的web浏览器,比如Firefox、Chrome、IE、Safari,甚至是curl脚本。这是一个简单的测试,可以查看服务器是否正常运行


就数据交换而言,建议使用XML或JSON,主要是如果你学会了如何处理它,你的简历将获得100个经验点。然而,要开始工作,您可以通过发送和接收“Wazzzaaap”之类的文本开始。Web浏览器还可以获取XML和JSON数据。

编辑:只需阅读您正在做的事情。您可能不需要web服务器。很多人推荐它是因为web服务器提供了大量支持。您当然可以使用TCP或UDP在服务器和客户端之间进行通信。如果您想要数据交换,您需要一些协议,这里的大多数人都熟悉XML或JSON

如果你需要灵感,试试看一些协议,比如FTP,甚至Bittorrent

Web服务器案例:

我为大学作业编写了一个JavaWeb服务器。如果您对TCP/IP有很好的了解,web服务器实际上是非常简单的。代码分散在网络上的每一个地方去做,虽然有点难以理解到底发生了什么,但是一旦你做了,它就不坏了

您肯定应该查看RFC for HTTP,即使这些内容倾向于使用法律术语。除此之外,在服务器上,您基本上是逐行读取字符串,并且应该能够知道在服务器上要做什么(例如GET/somefile.html HTTP/1.0)。只需在这些行上执行System.out.println,然后从那里开始。客户端代码也是如此。您还可以使用telnet查看web服务器的功能

为了进行测试,我建议您尝试使用常规的web浏览器,比如Firefox、Chrome、IE、Safari,甚至是curl脚本。这是一个简单的测试,可以查看服务器是否正常运行


就数据交换而言,建议使用XML或JSON,主要是如果你学会了如何处理它,你的简历将获得100个经验点。然而,要开始工作,您可以通过发送和接收“Wazzzaaap”之类的文本开始。Web浏览器还可以获取XML和JSON数据。

简短回答-定义并实现服务器和客户端之间的数据交换协议(XML、JSON等)。这种方法与其他方法相比如何?这是最好的办法吗?如果是,原因为何?谢谢对于以前从未做过的人来说,这听起来很复杂:Xshort-answer-定义并实现服务器和客户机之间的数据交换协议(xml、json等),这种方法与其他方法相比如何?这是最好的办法吗?如果是,原因为何?谢谢PS对于一个从未做过的人来说,这听起来很复杂:XIt实际上只是一个用java编写的服务器。到目前为止,它所做的只是接收一个套接字:ServerSocket sock=newserversocket(9999);然后对于每个连接套接字newsock=sock.accept();它创建一个线程来读取和响应传入的行。协议?TCP/IP是答案吗?我没有使用任何restful。TCP将是具体的答案,我在标题和标签中有这样的想法。那么,在这种情况下,我的选择是什么呢?服务器套接字不允许您将数据从服务器发送到客户端,它只是诚实地等待通信,答案是“视情况而定”。实际上,您可能不需要一个成熟的web服务器。TCP适用于需要可靠数据的情况,如果您不关心数据是否到达目的地,则可以使用UDP。Web服务器的优势在于,它们背后有很多支持,并且经过了尝试和测试。然而,对于服务器和客户机之间真正高性能的交换,这可能不是理想的情况——它实际上只是一个用java编写的服务器。它所做的一切