【发布时间】:2014-08-27 12:20:45
【问题描述】:
我是 Sockets 的新手,我有一些关于客户端 服务器通信的理论问题。
问题是关于消息类型和格式。
如果我将使用字符串作为字节[] 并使用分隔符作为消息,对于所有客户端-服务器操作,对于高负载项目来说这是一个好习惯吗? 例子: "CMSG_AUTH:Login:Password"
我听说有人使用操作码作为服务器返回命令。我应该串联使用字符串和操作码吗?如何?对于内部服务器架构,哪些设计模式值得学习? (我知道,这是一个愚蠢的问题,但我真的对服务器开发很感兴趣,而且我的梦想是编写好的、可扩展的服务器应用程序)。我不想使用 WCF,我想从头开始,只是为了了解它是如何工作的。
【问题讨论】:
-
您在考虑 TCP 还是 UDP?一个常见的初学者错误是没有意识到 TCP 套接字只是提供“字节流”的抽象——如果你想要 消息,你可以在 TCP 抽象之上实现这些。
-
是的,好的。所以如果你想要消息,你必须实现它们。对
Receive的调用可能会收到消息的部分。或者一条消息的结尾,另一条完整的消息和第三条消息的开始。或您能想到的任何其他组合。