【发布时间】:2014-12-05 21:03:26
【问题描述】:
我需要编写一个服务器应用程序,以在给定环境中接受来自不同系统的 TCP 数据报。这些消息可以是有限的消息类型列表;例如新库存(新项目记录)、库存位置更改(库存现在在位置 X)、转移请求(请将库存 ID XYZ 从位置 X 移动到位置 Y)作为一些示例。
我的问题是,为每个入站消息类型设置一个套接字(端口号)是否是个好主意,这样我就可以避免在数据报中使用某种类型的标识符来说明它是什么类型的消息,因此让我知道消息的格式以便我处理它吗?
我正在用 .NET 编写服务器,但 TCP 消息的发送者是现有的非 .NET 系统。我的计划是设置一个异步服务器,将消息保存到 MSMQ 中以供进一步处理。 (http://msdn.microsoft.com/en-us/library/fx6588te(v=vs.110).aspx)
【问题讨论】:
-
这肯定是一种非常不寻常的方式——假设大多数客户端需要发送不止一种类型的消息,它将需要更多的套接字开销。我不会那样做
-
这样说:假设您必须更改路由器上 UDP 数据包的路由。您希望与路由器神秘且难以理解的命令界面交互多长时间?一个端口绰绰有余..
-
@Martin eugh - 每次添加消息时都会更改防火墙:我的系统管理员会要求用血付款