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 1
,Receiver 1
将决定是否可以处理此请求,如果不能,将把请求传递给 Receiver 2
, Receiver 2
将不得不做同样的决定,如果可以处理请求,则将响应发送回 Sender
.
所以我们有以下属性:
- 需要一个端口
Sender
(或者换句话说,客户端)只知道第一个接收者。
- 负责的接收者将 return 直接回复给 sender/client,即使 sender/client 不知道该特定接收者。
- 减少耦合
- 动态管理请求处理程序。
此外,在链的末尾,您可以添加行为来指示诸如 final
响应之类的东西,或者如果请求发送没有负责的 class 来处理它,则为默认响应。
UML
例子
我正在为客户端-服务器编写代码,有两种可能性。
用户将请求传输特定信息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 1
,Receiver 1
将决定是否可以处理此请求,如果不能,将把请求传递给 Receiver 2
, Receiver 2
将不得不做同样的决定,如果可以处理请求,则将响应发送回 Sender
.
所以我们有以下属性:
- 需要一个端口
Sender
(或者换句话说,客户端)只知道第一个接收者。- 负责的接收者将 return 直接回复给 sender/client,即使 sender/client 不知道该特定接收者。
- 减少耦合
- 动态管理请求处理程序。
此外,在链的末尾,您可以添加行为来指示诸如 final
响应之类的东西,或者如果请求发送没有负责的 class 来处理它,则为默认响应。
UML
例子