什么是最简单的进程间通信方法 - 跨任何O / S&语言

时间:2011-09-17 20:06:49

标签: tcp ipc

对于编程比赛(code war)我想把它设置在我将游戏状态传递给A.I.作为一个xml文件和A.I.回复它在xml文件中返回它返回到我的应用程序。然后,比赛中的每个团队都可以实施他们的A.I.使用语言&他们最熟悉的O / S.

表现并不重要。它是两个小的xml文件(我说文件,但它可能只存在于内存中),它们会被传递回来。但简单性很重要,因此可以快速轻松地以任何语言实现客户端(A.I.)。

我想在服务器上我打开一个TCP套接字,发送状态xml文件,然后进入接收模式等待转xml文件。而且我也会等待一段时间,所以如果我在一秒钟内没有收到任何答案,我会为他们设置默认回合。

在客户端,它等待TCP套接字连接,读取xml文件,确定其转向,然后将xml文件写回。

这是使用大多数语言快速轻松地编写客户端的最佳方式吗?

更新:这会让每个玩家都在另一台机器上。不得不允许这个,因为有些人更喜欢Windows和一些Linux。它使这个过程更容易。

谢谢 - 戴夫

2 个答案:

答案 0 :(得分:0)

如果您的客户端和服务器在同一台机器上运行,则可能更容易将stdin / stdout用于IPC。服务器将执行AI进程,将XML文档写入AI stdin,然后等待AI stdout的响应。

如果您的AI需要长时间运行(例如,为了维持很多持久状态),那么您可以将AI分成两个部分,一个是“驻留”,另一个是接口组件,通过游戏过程每回合运行一次。接口组件可以通过最适合该语言的任何机制(REST,共享内存,消息传递等)与驻留部分进行通信。

答案 1 :(得分:0)

您需要使用您正在使用的任何语言的XML包。

您也可以使用HTTP over TCP / IP包 - 当然,它不需要使用端口80。这可能与不同语言的“标准”或“接近标准”的最佳支持相结合。