C# - 2个客户端程序交易变量信息 - 有更好的方法吗?

Rem*_*emm 3 c# interprocess

我试图将我的游戏中的玩家信息发送到我的网络客户端,然后被发送到服务器.

目前ClientNetwork - > ClientGame关系是用XML文件保存的.它们以非常高的速度来回读/写.如果您只使用一个XML文件进行此交易,那么有时候会"占用"该文件,当一个人无法读取时会产生一种滞后,因为另一个是恶意编写和重写.

为了解决这个问题,我有两个XML文件.如果它不能读取一个,它将读取另一个.从理论上讲,他们应该同时使用它们,因为它是从一个到另一个的权衡.没达到标准杆.

但我的主要问题只是XML的一般用法非常草率,数十个try-catch语句以确保它们都很开心(而且我个人最喜欢的,尝试抓住尝试捕获 - 我们必须更深入)

我很好奇是否有更好的方法来做这件事.我需要一个可由两个客户端程序访问的静态变量点.我担心会有人说数据库......

我想对任何正在研究这个问题的人说明并偶然发现共享内存非常棒.虽然我必须将所有字符串转换为字符然后转换为字节并逐个读取它们,但总体来说它比处理无法同时读取/写入同一文件的内容要好得多.如果您希望进一步了解它而不是仅仅使用它,请转到此链接,它解释了许多消息传递类型以及如何使用它们.

Jus*_*tin 6

就在这里!

您正在寻找的术语是进程间通信 - 同一台机器上两个进程之间的通信.

有多种方法允许同一台机器上的两个进程相互通信,包括:

  • 命名管道
  • 共享内存
  • 套接字
  • HTTP

幸运的是,C#应用程序可以简单地使用WCF框架来使用上面的一个来执行IPC(进程间通信),并让WCF框架处理困难的部分!以下是一些可以帮助您入门的指南(还有更多):

此外,关于WCF的一个巧妙之处在于,您还可以使用它来简单地通过将"传输"(即通信方法)更改为通过网络工作的(例如HTTP)来在不同机器之间进行通信.

如果您的目标是.Net 2.0,那么您应该研究.Net远程处理或Web服务.