首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >统一通信

统一通信
EN

Stack Overflow用户
提问于 2014-08-18 07:46:16
回答 1查看 85关注 0票数 0

我想知道我应该如何以比现在更好的方式建立过程间的统一沟通。客户端进程向服务器进程发送许多不同类型的消息。像..。我做了一些工作或者状态,进度甚至命令消息。

示例消息: 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(必须是这个版本)

谢谢你的答复

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-18 10:11:48

解决您的问题的最明显的解决方案是不自己编写解析代码。

如果创建一个可以序列化的类,则可以通过连线发送该类的序列化版本,并在另一端反序列化。这意味着消息类可以在两个应用程序之间共享,解析代码非常简单。根据您的需求,您可以使用各种序列化器: Xml或JSON将是冗长而可读的,或者二进制序列化程序在带宽方面会更高效(但更难在线上调试或监视)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25358468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档