【发布时间】:2015-03-29 16:04:25
【问题描述】:
我正在为 Android 开发一款多人回合制游戏 - 一款扑克游戏。 我几乎完成了 clinet 游戏。现在我需要实现多人游戏。
我考虑过使用 Web 服务,但我没有这方面的经验,我知道套接字通信更快。
我有一些用 Java 编写套接字通信的经验: 使用 ObjectOutputStream 和 ObjectInputStream 交换数据(本例中为游戏状态和回合动作)。
但我对这种方法有一点担忧——服务器端依赖于平台。 如果我想让 iPhone 开发人员为 iPhone 创建应用程序,他不能这样做,因为服务器需要 Java 代码。我说的对吗?
还有一个问题: 我可以实现普通套接字通信,然后轻松将其更改为安全套接字通信吗?只是我需要学习如何使用 SSL,我现在不想深入。
谢谢!
【问题讨论】:
-
当然看起来一个简单的基于 HTTP 的协议会更容易。在任何情况下,“套接字”都不依赖于平台。在某些协议调用中,套接字需要数据。套接字不“期望 Java 代码”。
-
如果服务器需要一个自定义对象 (ObjectInputStream.in(CustomObject)),从客户端我将不得不在 Java 中使用 ObjectInputStream.out(CustomObject)。我认为自定义对象在 ObjectiveC 中的编写方式不同..
-
如果您正在序列化对象,当然可以。这只是通过套接字传输数据的一种方式。套接字期望数据; 你定义你发送和期望接收的数据,以及一旦你有了这些数据如何处理。
-
没有。服务器应该独立于平台。服务器大多是。客户端采用服务器强制执行的协议。
-
@greenapps,我猜协议是我的问题。在我之前的项目中,客户端只发送了一个 requestCode (int),服务器发送回数据,而客户端则期待特定的对象。没有协议可以强制执行任何事情。您能否提供一个链接来解释如何为客户“采用”实现协议?