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

时间:2012-12-13 17:10:46

标签: java android sockets serialization tcp

我打算使用objectOutputStream,但听说这是不可靠的,因为不同的java版本可能会以不同的方式反序列化对象。关于'可怕的跨建筑实践......'的事情。

那么我怎样才能在这些设备之间发送对象和数组,接收端可以将正确的对象或数组数据拼凑在一起呢?

2 个答案:

答案 0 :(得分:0)

编辑:看看你在做什么。您可能不需要Web服务器。很多人推荐一个,因为Web服务器拥有大量支持。您当然使用TCP或UDP在服务器和客户端之间进行通信。如果你想要数据交换,你需要有一些协议,这里的大多数人都熟悉XML或JSON

如果您需要灵感,请尝试查看一些协议,如FTP,甚至是Bittorrent

Web服务器案例:

我为大学家庭作业编写了一个Java Web服务器。如果您对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数据。

答案 1 :(得分:-1)

通过'java服务器',你使用什么样的协议?

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

中定义

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

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