Networking 客户机-服务器-如何识别两种不同的方法

Networking 客户机-服务器-如何识别两种不同的方法,networking,client-server,Networking,Client Server,我正在为客户机服务器编写代码,有两种可能 用户将请求发送特定信息a 用户将请求发送特定信息B 我想确定客户机在我的服务器端需要什么,以及客户机将如何做到这一点 还有其他想法吗 根据信息的大小,您始终可以通过一个管道传输这两个信息,然后在用户端解密所需的信息 string data = // .. data transmitted. string[] dataSplit = data.Split(SEPARATOR); // dataSplit[0] is type of information

我正在为客户机服务器编写代码,有两种可能

用户将请求发送特定信息a

用户将请求发送特定信息B

我想确定客户机在我的服务器端需要什么,以及客户机将如何做到这一点


还有其他想法吗

根据信息的大小,您始终可以通过一个管道传输这两个信息,然后在用户端解密所需的信息

string data = // .. data transmitted.
string[] dataSplit = data.Split(SEPARATOR);

// dataSplit[0] is type of information
switch(dataSplit[0]) {
 case 'Name':
   ... 
   break;
 case 'OS':
   ... 
   break;
}

你明白吗?

我知道这是一个很老的问题,但我认为最好使用设计模式

其思想是,您可以使用单个端口将请求发送到
接收器1
接收器1
将决定是否可以处理此请求,如果不能,将请求传递给
接收器2
接收器2
将必须执行相同的决定,如果可以处理请求,然后将响应发送回
发送方

因此,我们具有以下特性:

  • 需要一个端口
  • 发送方
    (或者换句话说,客户端)只知道第一个接收方
  • 即使发送者/客户不知道特定的接收者,负责的接收者也将直接向发送者/客户返回响应
  • 减少耦合
  • 动态管理请求处理程序
  • 此外,在链的末尾,您可以添加行为来指示类似于
    最终
    响应的响应,或者如果请求发送没有负责处理它的类,则可以添加默认响应

    UML

    示例


    是;谢谢,但这并不意味着这是一个字符串。。这并不意味着我可以在这些信息上进行字符串切片嘿,你不需要两个不同的端口。您必须从客户端向服务器发送两种不同类型的消息。我不知道你在用什么协议。如果是您自己的TCP套接字协议,则可以使用TLV格式(类型、长度、值)。如果使用HTTP,则可以为不同的REST资源使用两个不同的端点。