예제 #1
0
        public AsyncRetranslator(string listenHost, int listenPort, string monHost, int monPort)
        {
            appPath = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
            string   log4netConfigPath = Path.Combine(appPath, "log4net.config");
            FileInfo fi = new FileInfo(log4netConfigPath);

            XmlConfigurator.ConfigureAndWatch(fi);
            log        = LogManager.GetLogger(typeof(AsyncRetranslator));
            commandLog = LogManager.GetLogger("command");

            messageReceivedFromBlockDelegate = messageReceivedFromBlock;
            messageReceivedFromMonDelegate   = messageReceivedFromMon;
            messageReceivedFromMon2Delegate  = messageReceivedFromMon2;

            messageSendedToMonDelegate   = messageSendedToMon;
            messageSendedToMon2Delegate  = messageSendedToMon2;
            messageSendedToBlockDelegate = messageSendedToBlock;

            blockReceiveFailedDelegate = blockReceiveFailed;
            blockSendFailedDelegate    = blockSendFailed;
            monReceiveFailedDelegate   = monReceiveFailed;
            monSendFailedDelegate      = monSendFailed;
            mon2ReceiveFailedDelegate  = mon2ReceiveFailed;
            mon2SendFailedDelegate     = mon2SendFailed;

            blockConnectionAcceptedDelegate = blockConnectionAccepted;


            blocksAcceptor = new BlocksAcceptor(listenHost, listenPort, messageReceivedFromBlockDelegate, messageSendedToBlockDelegate,
                                                blockConnectionAcceptedDelegate, blockReceiveFailedDelegate, blockSendFailedDelegate);
            monConnector = new MonConnector(monHost, monPort, messageReceivedFromMonDelegate, messageSendedToMonDelegate,
                                            monReceiveFailedDelegate, monSendFailedDelegate, 3, 7000);
            receivePacketProcessor = new ReceivePacketProcessor();

            if (Settings.Default.Mon2_Enabled)
            {
                // 1. load imeis
                if (!Settings.Default.Mon2_Allboards)
                {
                    mon2Imeis = ImeiListLoader.loadImeis(log, Settings.Default.Mon2_ImeiListFileName);
                }

                // 2. init mon2connector
                mon2Connector = new MonConnector(Settings.Default.Mon2_Host, Settings.Default.Mon2_Port,
                                                 messageReceivedFromMon2Delegate, messageSendedToMon2Delegate, mon2ReceiveFailedDelegate, mon2SendFailedDelegate);
            }
        }
 public MonConnector(string monHost, int monPort, MessageReceived messageReceived, BaseConnector.MessageSended messageSended,
                     ReceiveFailed receiveFailed, SendFailed sendFailed, int attemptConnect, int timeoutConnect)
     : this(monHost, monPort, messageReceived, messageSended, receiveFailed, sendFailed)
 {
     this.attemptConnect = attemptConnect;
     this.timeoutConnect = timeoutConnect;
 }
        public MonConnector(string monHost, int monPort, MessageReceived messageReceived, BaseConnector.MessageSended messageSended,
                            ReceiveFailed receiveFailed, SendFailed sendFailed)
        {
            this.monHost = monHost;
            this.monPort = monPort;
            var monIPAddress = IPAddress.Parse(monHost);

            monEndPoint = new IPEndPoint(monIPAddress, monPort);

            this.messageReceived = messageReceived;
            this.messageSended   = messageSended;
            this.receiveFailed   = receiveFailed;
            this.sendFailed      = sendFailed;

            sendEventHandler    = new EventHandler <SocketAsyncEventArgs>(sendEvent);
            receiveEventHandler = new EventHandler <SocketAsyncEventArgs>(receiveEvent);

            log = LogManager.GetLogger(typeof(MonConnector));
        }