假如有如下环境:
外网服务器A,内网NAT设备下机器B, 内网NAT2设备下C, 内网NAT3设备下D, A与B能通信,B与C能通信,C与D能通信,A与C和D无法直接通信,现在要在其中做转发,要A能与D通信.
我现在在确定设计模式.我定义的结点结构是这样的
typedef struct _HSERVER_NODE_
{
DWORD Ver; //当前源代码版本
ULONG LocalAddr; //本地IP地址
ULONG UpServerAddr; //上级结点IP地址
ULONG UpServerPort; //上级结点端口
int hServerIndex; //当前结点等级索引
int h_ServerStatus; //结点状态
int h_UpServerStatus; //上级结点状态
int h_MaxConnect; //最大负载连接
int h_UConnnect; //当前使用的连接数
}HSERVER_NODE,* PHSERVER_NODE;
如果从D往A发送,就只要先发送给C..C转发给结点的UpServerAddr;//上级结点IP地址,就到了B,B再转发给结点的UpServerAddr;//上级结点IP地址就到了A
但是从A往D发送就不行了.因为结点B可能有多个连接他的子结点,假如有50个字结点通过他转发,只有一个结点才是通往D的子结点,要怎么样设计才能保证A能发往D, 希望有做过这块的高手指导一下
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!