Exemplo n.º 1
0
        /// <summary>
        /// metoda wywołana po wciśnięciu "połącz z chmurąsterowania"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void conToCloudButton_Click(object sender, EventArgs e)
        {
            if (!isConnectedToControlCloud)
            {
                if (isNodeAddressSet)
                {
                    if (IPAddress.TryParse(controlCloudIPTextBox.Text, out controlCloudAddress))
                    {
                        SetText("IP ustawiono jako " + controlCloudAddress.ToString() + "\n");
                    }
                    else
                    {
                        SetText("Błąd podczas ustawiania IP chmury (zły format?)\n");
                    }
                    if (Int32.TryParse(controlCloudPortTextBox.Text, out controlCloudPort))
                    {
                        SetText("Port chmury ustawiony jako " + controlCloudPort.ToString() + "\n");
                    }
                    else
                    {
                        SetText("Błąd podczas ustawiania portu chmury (zły format?)\n");
                    }

                    controlCloudSocket   = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    controlCloudEndPoint = new IPEndPoint(controlCloudAddress, controlCloudPort);
                    try {
                        controlCloudSocket.Connect(controlCloudEndPoint);
                        isConnectedToControlCloud = true;
                        controlNetworkStream      = new NetworkStream(controlCloudSocket);
                        List <String> _welcArr = new List <String>();
                        _welcArr.Add("HELLO");
                        SPacket welcomePacket = new SPacket(myAddress.ToString(), new Address(0, 0, 0).ToString(), _welcArr);
                        whatToSendQueue.Enqueue(welcomePacket);
                        //whatToSendQueue.Enqueue("HELLO " + myAddr);
                        controlReceiveThread = new Thread(this.controlReceiver);
                        controlReceiveThread.IsBackground = true;
                        controlReceiveThread.Start();
                        controlSendThread = new Thread(this.controlSender);
                        controlSendThread.IsBackground = true;
                        controlSendThread.Start();
                        //conToCloudButton.Text = "Rozłącz";
                        LRM = new eLReMix(this);
                        SetText("Połączono!\n");
                        exceptionCount = 0;
                    } catch (SocketException) {
                        isConnectedToControlCloud = false;
                        SetText("Błąd podczas łączenia się z chmurą\n");
                        SetText("Złe IP lub port? Chmura nie działa?\n");
                    }
                }
                else
                {
                    SetText("Wprowadź numery sieci i podsieci\n");
                }
            }
            else
            {
                isConnectedToControlCloud = false;
                conToCloudButton.Text     = "Połącz";
                SetText("Rozłączono!\n");
                if (controlCloudSocket != null)
                {
                    controlCloudSocket.Close();
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// metoda wywołana po wciśnięciu "połącz z chmurąsterowania"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void conToCloudButton_Click(object sender, EventArgs e)
        {
            if (!isConnectedToControlCloud) {
                if (isNodeAddressSet) {
                    if (IPAddress.TryParse(controlCloudIPTextBox.Text, out controlCloudAddress)) {
                        SetText("IP ustawiono jako " + controlCloudAddress.ToString()+"\n");
                    } else {
                        SetText("Błąd podczas ustawiania IP chmury (zły format?)\n");
                    }
                    if (Int32.TryParse(controlCloudPortTextBox.Text, out controlCloudPort)) {
                        SetText("Port chmury ustawiony jako " + controlCloudPort.ToString()+"\n");
                    } else {
                        SetText("Błąd podczas ustawiania portu chmury (zły format?)\n");
                    }

                    controlCloudSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                    controlCloudEndPoint = new IPEndPoint(controlCloudAddress, controlCloudPort);
                    try {
                        controlCloudSocket.Connect(controlCloudEndPoint);
                        isConnectedToControlCloud = true;
                        controlNetworkStream = new NetworkStream(controlCloudSocket);
                        List<String> _welcArr = new List<String>();
                        _welcArr.Add("HELLO");
                        SPacket welcomePacket = new SPacket(myAddress.ToString(), new Address(0, 0, 0).ToString(), _welcArr);
                        whatToSendQueue.Enqueue(welcomePacket);
                        //whatToSendQueue.Enqueue("HELLO " + myAddr);
                        controlReceiveThread = new Thread(this.controlReceiver);
                        controlReceiveThread.IsBackground = true;
                        controlReceiveThread.Start();
                        controlSendThread = new Thread(this.controlSender);
                        controlSendThread.IsBackground = true;
                        controlSendThread.Start();
                        //conToCloudButton.Text = "Rozłącz";
                        LRM = new eLReMix(this);
                        SetText("Połączono!\n");
                        exceptionCount = 0;
                    } catch (SocketException) {
                        isConnectedToControlCloud = false;
                        SetText("Błąd podczas łączenia się z chmurą\n");
                        SetText("Złe IP lub port? Chmura nie działa?\n");
                    }
                } else {
                    SetText("Wprowadź numery sieci i podsieci\n");
                }
            } else {
                isConnectedToControlCloud = false;
                conToCloudButton.Text = "Połącz";
                SetText("Rozłączono!\n");
                if (controlCloudSocket != null) controlCloudSocket.Close();
            }
        }