Beispiel #1
0
        private RemoteClient MakeRemoteClient(ClientMessage clientMessage)
        {
            logger.Info($"New client was received: {clientMessage.EndPoint.ToString()}");

            var        config           = Core.DI.Get <Config>();
            IPEndPoint redirectEndPoint = new IPEndPoint(
                IPAddress.Parse(config.Collection.RedirectIp),
                config.Collection.RedirectPort
                );

            UdpSocket    redirectSocket = new UdpSocket(redirectEndPoint, true);
            RemoteClient remoteClient   = new RemoteClient(redirectSocket, clientMessage.EndPoint);

            remoteClients = remoteClients.Concat(new RemoteClient[] { remoteClient });
            ListenRedirectSocket(remoteClient);

            return(remoteClient);
        }
Beispiel #2
0
 private void OnReceiveClient(ClientMessage clientMessage)
 {
     RemoteClient client = remoteClients.Find(clientMessage.EndPoint)
                           ?? MakeRemoteClient(clientMessage);
     var result = client.RedirectSocket.Send(clientMessage.Message);
 }