/// <summary> /// Конструктор коммуникатора /// </summary> public Communicator() { // TO DO Переделать под конфигуратор localIP = IPAddress.Parse(Settings.Default.localIP); remoteIP = IPAddress.Parse(Settings.Default.remoteIP); localReceivingPort = Convert.ToInt16(Settings.Default.localReceivingPort); remoteReceivingPort = Convert.ToInt16(Settings.Default.remoteReceivingPort);; localSendingPort = Convert.ToInt16(Settings.Default.localSendingPort); remoteSendingPort = Convert.ToInt16(Settings.Default.remoteSendingPort); hostType = (HostType)Enum.Parse(typeof(HostType), Settings.Default.hostType); ExchangePeriod = Convert.ToInt16(Settings.Default.netExchangePeriod); communicationMode = (CommunicationMode)Enum.Parse(typeof(CommunicationMode), Settings.Default.communicationMode); localApplicationName = "Source"; remoteApplicationName = "Target"; state = CommunicatorState.stoped; transceiver = new UDPTransceiver(localIP, localReceivingPort, localSendingPort, remoteIP, remoteSendingPort, remoteSendingPort); // Создаем пустой список параметров. Parameters = new List <Parameter>(); // Создаем поток для работы обменника if (hostType == HostType.Slave) { NetworkThread = new Thread(ListenNetworkSlave); } else { NetworkThread = new Thread(ListenNetworkMaster); } InputParameterChanged += (s, e) => hasInputParameterChanged = true; }
/// <summary> /// Конструктор коммуникатора /// </summary> public Communicator() { /* localIP = IPAddress.Parse(Settings.Default.localIP); * remoteIP = IPAddress.Parse(Settings.Default.remoteIP); * localReceivingPort = Convert.ToInt16(Settings.Default.localReceivingPort); * remoteSendingPort = Convert.ToInt16(Settings.Default.remoteSendingPort); * * inputPackageSize = Convert.ToUInt16(Settings.Default.inputPackageSize); * //InputPackage.RemoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0); */ localIP = IPAddress.Parse(Properties.Settings.Default.localIP); remoteIP = IPAddress.Parse(Properties.Settings.Default.remoteIP); localReceivingPort = Convert.ToInt16(Properties.Settings.Default.localReceivingPort); remoteSendingPort = Convert.ToInt16(Properties.Settings.Default.remoteSendingPort); localSendingPort = Convert.ToInt16(Properties.Settings.Default.localSendingPort); inputPackageSize = Convert.ToUInt16(Properties.Settings.Default.inputPackageSize); this.InputPackage = new InputPackage(inputPackageSize); state = CommunicatorState.stoped; DataReceived += new EventHandler <EventArgs>(NotifyMediator); // Создаем поток для работы обменника ReceiverThread = new Thread(ListenNetwork); //TransmitterThread = new Thread(SendState); }
/// <summary> /// Запускает в работу обменник /// </summary> public void Start() { state = CommunicatorState.active; if (NetworkThread.ThreadState == ThreadState.Aborted) { SetNetworkThread(); } NetworkThread.Start(); }
/// <summary> /// Запускает в работу обменник /// </summary> public void Start() { if (transceiver == null) { transceiver = new UDPTransceiver(localIP, localReceivingPort, remoteIP, remoteSendingPort); } ReceiverThread = new Thread(ListenNetwork); state = CommunicatorState.active; ReceiverThread.IsBackground = true; if (!ReceiverThread.IsAlive) { ReceiverThread.Start(); } }
/// <summary> /// Останавливает работу обменника /// </summary> public void Stop() { state = CommunicatorState.stoped; NetworkThread.Abort(); }
/// <summary> /// Останавливает работу обменника /// </summary> public void Stop() { state = CommunicatorState.stoped; ReceiverThread.Abort(); }