套接字和数据传输格式

时间:2014-08-27 12:20:46

标签: c# sockets theory

我是Sockets的新手,我对Client< - >有一些理论上的问题。服务器通信。

问题是关于消息类型和格式。

  1. 如果我将字符串[]作为带有分隔符的字符串作为消息使用,对于所有客户端 - 服务器操作,对于高负载项目来说,这是一个好习惯吗? 例: “CMSG_AUTH:登录:密码”

  2. 我听说有人使用操作码作为服务器返回命令。我应该串联使用字符串和操作码吗?如何?对于内部服务器架构,哪种设计模式可以学习? (我知道,这是一个愚蠢的问题,但我对服务器开发非常感兴趣,而且编写优秀,可扩展的服务器应用程序是我的梦想)。我不想使用WCF,我想从头开始,只是为了理解它是如何工作的。

1 个答案:

答案 0 :(得分:0)

使用已建立的格式来序列化来自客户端和服务器的消息。对应方可以使用相同的格式进行反序列化。

格式的示例有JSON,xml(使用字符串)或protobuf(二进制)。

定义要在客户端和服务器之间传输的信息的类:

   class LoginDto
   {
       string UserName {get;set;}
       string Secret{get;set;}
   }

如果您坚持使用已建立的格式,则很容易将这类类的实例序列化,以便通过网络传输。

查找DataContractSerializerJSON.NetProtobuf-net,了解XML,JSON和protobuf序列化程序的实现。