1

我正在使用 NetworkComms.Net,我目前正在尝试创建一种转发器,它侦听一个端口(称为网关),它接收一个特定的数据包(来自客户端),它将告诉他将下一个 pacekts 重定向到哪里同一个客户。

示例: CLIENT 告诉 GATEWAY 他需要到达 SERVER:serverport GATEWAY 创建到 SERVER:serverport 的连接 CLIENT 将数据包发送到 GATEWAY,GATEWAY 将它们发送到 SERVER 服务器发回响应,该响应通过 GATEWAY 到 CLIENT。

我让它与 Net.Sockets 一起工作,现在我正在更改为 NetworkComms。

我面临的问题是,当网关(客户端)到服务器(监听服务器)的连接关闭时,网关会触发连接/断开的全局回调:

NetworkComms.AppendGlobalConnectionCloseHandler(ClientDisconnected);
NetworkComms.AppendGlobalConnectionEstablishHandler(ClientConnected);

这些回调应该只在客户端连接或断开网关时调用

这是我目前用来启动监听器的代码。

NetworkComms.DefaultSendReceiveOptions = new SendReceiveOptions<ProtobufSerializer, , LZMACompressor>();
NetworkComms.DefaultSendReceiveOptions.IncludePacketConstructionTime = NetworkComms.DefaultSendReceiveOptions.ReceiveHandlePriority = QueueItemPriority.AboveNormal;
NetworkComms.AppendGlobalConnectionCloseHandler(SessionClosed);
NetworkComms.AppendGlobalConnectionEstablishHandler(NewSessionConnected);
NetworkComms.AppendGlobalIncomingPacketHandler<string>("ECHO", SocketCommands.HandleIncomingECHOPacket);
Connection.StartListening(ConnectionType.TCP, new IPEndPoint(IPAddress.Any, 10000));

我想这就像一个“全球”的启动方式吗?如何启动一个然后将那些已连接/已断开连接的处理程序添加到侦听器?

谢谢

4

0 回答 0