繁体   English   中英

在C#中通过TCP发送XML格式的消息

[英]Sending XML format messages through TCP in C#

我有一个C#TCP聊天程序。 目前,我已经格式化了使用字符串发送的消息,即“ login”消息以“ 3”开头,然后是“ U:”,然后是用户名等。

我认为这种方法非常粗糙,无法真正理解和标准化。 在早期的研究中,我读到可以使用XML格式化消息,但我不知道从哪里开始。 我是否只是制作一个字符串生成器并附加诸如.append("<Login>"+message)之类的标签?

处理此类问题的最常见方法是使用序列化。 序列化是将内存中的对象转换为可以轻松地“在线传输”的格式的过程,反序列化是将序列化的格式转换回对象的反向过程。 .NET开箱即用地对XML和二进制序列化提供了良好的支持,但是还有其他方法可以实现这一点。 这是让您入门的链接:

http://msdn.microsoft.com/en-us/library/7ay27kt9(VS.71).aspx

您可以通过连接发送任何您喜欢的东西-只要它仅用于您的程序,选择什么都不重要。 Xml可能会给您带来一些好处,因为它可以使用某种结构化的消息,并且网上有许多关于XML的类,工具和知识。 JSon格式可能是另一种选择-如果您想使用基于Web的方法,它将可能更轻松地为其创建JavaScript客户端。

除非需要第三者能够读取这些消息,否则我可能会赞成二进制序列化 ,因为它具有更紧凑的格式。

也就是说,我可能只使用WCF而不是直接使用TCP。

如果您想了解有关XML序列化的更多信息,那么最常用的方法是:

您可以将我们自己的XML编写为字符串,但是最好使用.Net框架中提供的序列化方法,因为这样可以使事情变得更加容易,并减少您犯错误并无意间开始使用无效xml的机会。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM