我想知道我应该如何以比现在更好的方式建立过程间的统一沟通。客户端进程向服务器进程发送许多不同类型的消息。像..。我做了一些工作或者状态,进度甚至命令消息。
示例消息: From:Process1;StartedAt|12:12:12;EndedAt|12:45:56;DoneUnit:51
服务器解析器用分号拆分字符串。从第一部分开始读到谁被发送的消息。从第二和第三部分,它读时间,从最后,它做了多少工作。当我在消息的末尾添加另一个信息时
例如。From:Process1;StartedAt|12:12:12;EndedAt|12:45:56;DoneUnit:51;Source:tableT我还必须重写服务器解析器。
服务器尝试使用我自己的解析函数来解析接收到的消息。每条消息都有自己的格式。所以解析器知道消息应该是什么样子的。但是,如果我在客户端上更改格式,我也必须在服务器上更改它。这似乎不是很有效的方法。
因此我问你一个问题。这种通信应该如何变得更好,或者有什么不同的方法,如何将客户端和服务器的格式存储在一个地方?
我使用c# .net 3.5(必须是这个版本)
谢谢你的答复
发布于 2014-08-18 10:11:48
解决您的问题的最明显的解决方案是不自己编写解析代码。
如果创建一个可以序列化的类,则可以通过连线发送该类的序列化版本,并在另一端反序列化。这意味着消息类可以在两个应用程序之间共享,解析代码非常简单。根据您的需求,您可以使用各种序列化器: Xml或JSON将是冗长而可读的,或者二进制序列化程序在带宽方面会更高效(但更难在线上调试或监视)。
https://stackoverflow.com/questions/25358468
复制相似问题