Client-Server 如何识别两种不同的方法

Client-Server how to identify two different methods

我正在为客户端-服务器编写代码,有两种可能性。

用户将请求传输特定信息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;
}

你明白了吗?

我知道这是一个很老的问题,但我认为使用 Chain of Responsibility 设计模式是个好主意!

想法是您可以使用单个端口并将请求发送到 Receiver 1Receiver 1 将决定是否可以处理此请求,如果不能,将把请求传递给 Receiver 2, Receiver 2 将不得不做同样的决定,如果可以处理请求,则将响应发送回 Sender.

所以我们有以下属性:

  1. 需要一个端口
  2. Sender(或者换句话说,客户端)只知道第一个接收者。
  3. 负责的接收者将 return 直接回复给 sender/client,即使 sender/client 不知道该特定接收者。
  4. 减少耦合
  5. 动态管理请求处理程序。

此外,在链的末尾,您可以添加行为来指示诸如 final 响应之类的东西,或者如果请求发送没有负责的 class 来处理它,则为默认响应。

UML

例子