【发布时间】:2014-11-07 11:31:31
【问题描述】:
我一直在玩弄网络套接字,我的大部分问题都来自 Windows 窗体,但我研究了很多程序,例如私有服务器模拟器,我对自己的数据包处理感到不满意。
每条消息都采用 JSON 格式,如下所示:
{
"id":201,
"Message":"Hello, World.",
"User":"System",
"Color":"LawnGreen"
}
“id”在所有数据包中都是一个常数,它将标识数据包的功能。具有相同 ID 的数据包,此后称为标头,将始终具有相同的键,但不一定具有相同的值(呃,有人说)。
我将 JSON 反序列化为动态并在数据包的标头上执行 switch case,如下所示:
switch((int)jsonPacket.id)
{
case 201:
...
}
鉴于这是一个非常小规模的聊天应用程序,甚至几乎不会开始尝试实现 IRC 的所有功能,我是否仍然对我的实现感到担忧和不满意?小型游戏/测试台服务器使用相同的方法,但我不想在功能和性能方面限制自己,或者它是否会成为麻烦。
任何想法都会有所帮助。
【问题讨论】:
-
您还没有告诉我们
switch/case方法有什么问题。在更好的方法对您意味着什么方面,您几乎没有告诉我们。 -
我想我的问题实际上是关于这段代码的相关性。我知道它会起作用,但考虑到我已经看到其他类似的应用程序使用使用委托和字典的方法,它会为我的目的工作最佳。但是已经回答了!
标签: c# json sockets switch-statement packet