最近我尝试询问similar question,但经过几次回答后,我意识到这不是正确的要求。最佳实践:为C#中的已知协议生成和解析网络数据包?
是否有基于现有协议(如SMPP(短消息对等协议[用于SMS消息])或各种聊天协议(如HOTLINE或IRC)生成和解析网络数据包的指南或解决方案与C#。
一提到谷歌Protocol Buffers的答案和.NET version的。看完后,我意识到,如果您可以控制两端(客户端和服务器),序列化非常有用。我会在哪里遵循协议规范。
生成 在过去,我已经做出了类或结构与在网络分组/协议的一部分属性:
// PSEUDO CODE
class NetworkObject
{
private int length;
private string data;
// ...
public byte[] GetBytes()
{
// Convert string and int to byte array
return byte array;
}
}
类有一个byte[] GetBytes()方法我称之为一旦我设置适当的属性。我采取该字节数组并通过网络发送。在我之前的问题中,其中一个答案建议将数据存储在内存流或字节流中,这似乎是一个更好的主意。
好像我的字节数组的方法是可能比通过一个网络流,根据直接类属性到流写入分组数据的方法慢。除非我在这里错过了一些很大的东西,否则我可能会这样做。
解析 当解析我用不同的case语句来逐步各种PDU和生成NetworkObject与填充适当的功能,用它做什么,因为我认为合适的。
对于这个问题,我们确实需要更好的答案! ;) – 2010-04-08 11:52:51