设计一个C#服务器来处理与平台无关的数据?

时间:2011-03-23 14:06:53

标签: c# sockets cross-platform request

我正在研究设计一个可以在多个平台(即windows,macintosh,android,iphone)上运行的应用程序,但它们都与在一个中央服务器上存储和处理的数据进行交互。

基本上: 服务器托管世界状态 - 包括活动客户端,它们在世界中的实体,以及从该实体的角度渲染世界的规则。 客户端持有对该实体的引用,并向服务器发送请求以更新其状态并根据其实体检索呈现。

我最强的语言就是C#所以我更愿意用它来编写服务器。

我知道我需要开发自己的命令语法,可以由服务器解释,并且对所有客户端都是通用的。我不知道的是关于服务器编码的实际实现,只是对必要的高级概念。

.Net套接字API是否可用于非.Net套接字客户端?这甚至是一个有效的问题吗?

基本上我想知道如何最好地以结构化方式发送和接收数据,但这是一种独立于平台的方式。

请求所需的数据样本类似于

实体:[实体名称]
RequestType:[Request Type](让我们说它是一个动作命令)
ActionType:[Action Type]
ActionProp1:[行动财产]

实体:[实体名称]
RequestType:[请求类型](让我们说请求呈现)
RenderDimX:[X渲染的尺寸]
RenderDimY:[Y渲染的尺寸]

我还没有实际计划出请求语法,所以不要批评:)

这只是我想要从客户端发送到服务器的消息。

那么如何设置C#服务器来处理将发送这些类型消息的客户端?或者我是不是错了?

谢谢!

2 个答案:

答案 0 :(得分:2)

为什么不做基于REST的服务并通过这些服务提供所有服务?作为HTML / XML /等服务,任何客户端都应该能够连接,查询和使用发回的数据。套接字级别的编程看起来有点像听起来像软件作为服务模型。

答案 1 :(得分:0)

我最终使用了套接字。标准化协议使其变得相当容易。