UDP代码客户端服务器架构

时间:2011-06-24 01:07:59

标签: java android multithreading udp client-server

嗨我已经在android上开发了一款游戏。现在我想在wifi或3G上播放它。 我有游戏数据包,我想将它从客户端(移动)发送到服务器,然后发送到另一个客户端2(移动)。

我不知道如何用Java编写代码来将playPackets 连续发送到服务器并从服务器接收playPacket

我想我必须使用两个线程一个用于发送,一个用于接收。

有人可以帮我处理代码或为其编写代码的程序。

提前致谢。

2 个答案:

答案 0 :(得分:2)

在最真实的意义上,这是不可能做到的。以太网不支持连续的点对点数据流,因为您需要串行电缆或类似ATM的东西。

但是,您可以通过允许隐藏在较高级别的数据中的“突发”来近似连续数据流。无法保证底层网络能够每分钟传输或接收模拟连续数据流所需的最小数据包数。

UDP可以支持更高的传输速率,但有一个非常重要的警告:UDP数据包可以随时丢弃,而不会实际被接收。要使用UDP,你必须非常小心,丢失一些数据包或无序传送数据包不会搞砸你的游戏状态。

如果您确定可以使用UDP的限制Sun / Oracle has a good introductory tutorial here

答案 1 :(得分:2)

据我所知,您需要的是一种接收和发送消息而不会弄乱线程的方法。这就是非阻塞IO所做的事情。您可以使用NIO,因为它不会在发送时阻止控制线程或(更重要的是)接收消息。

http://www.cordinc.com/blog/2010/08/java-nio-server-example.html http://download.oracle.com/javase/1.4.2/docs/guide/nio/example/index.html