コード例 #1
0
        private void PodtrzymaniePołączenia()
        {
            try
            {
                while (true)
                {
                    TcpClient     tcpClient = new TcpClient(Around_Lib.GetIpByConnectionKey(ConnectionKeyBox.Text), 5759);
                    NetworkStream stream    = tcpClient.GetStream();
                    byte[]        bytes     = Encoding.UTF8.GetBytes(AdresIP);
                    stream.Write(bytes, 0, bytes.Length);
                    tcpClient.Close();
                    connected = true;

                    Thread.Sleep(2000);
                }
            }

            catch
            {
                this.Invoke((MethodInvoker) delegate
                {
                    ConnectToServerBtn.BackColor = Color.FromArgb(26, 35, 126);
                    ConnectToServerBtn.Enabled   = true;
                    ConnectToServerBtn.Text      = "Połącz";
                    ConnectionKeyBox.Enabled     = true;
                    ConnectionKeyBox.Visible     = true;
                    ConnectToServerBtn.Visible   = true;

                    ConnectionKeyLabel.Text = "Kod połączenia: " + ConnectionKeyBox.Text;

                    MessageBox.Show("Utracono połączenie z serwerem!", "Utracono połączenie");
                });
            }
        }
コード例 #2
0
        private void ListenerThread()
        {
            Nasłuchiwacz.Start();

            while (true)
            {
                //Odbieramy wiadomość
                Klient = Nasłuchiwacz.AcceptTcpClient();
                NetworkStream strumień = Klient.GetStream();

                var bufor = new byte[Klient.ReceiveBufferSize];
                int bajty = strumień.Read(bufor, 0, Klient.ReceiveBufferSize);

                var wiadomość = Encoding.UTF8.GetString(bufor, 0, bajty);

                //Przetwarzamy wiadomość - w której jest po prostu adres IP klienta
                var entry = (from a in ListaAdresówKlientów where a.AdresIP == wiadomość select a).FirstOrDefault();
                if (entry == null)
                {
                    if (Around_Lib.IsIpCorrect(wiadomość) == true)
                    {
                        ListaAdresówKlientów.Add(new KlientIPModel(wiadomość, DateTime.Now));
                    }
                }

                else
                {
                    entry.Aktualizuj();
                }
            } //Nasłuchiwanie jest aktywne zawsze, więc nie opuszczamy tej metody
        }
コード例 #3
0
        private void Streamer_Load(object sender, EventArgs e)
        {
            this.Location           = previousFormLoc;
            StreamingCodeLabel.Text = Around_Lib.GenerateNewConnectionKey(StrServerIP);

            //Oraz uruchamiamy nasłuchiwanie
            WątekNasłuchiwania = new Thread(ListenerThread);
            WątekNasłuchiwania.Start();

            WątekAktywnychKlientów = new Thread(ConnectedClientsCounter);
            WątekAktywnychKlientów.Start();
        }
コード例 #4
0
        private void PierwszePołączenie()
        {
            try
            {
                TcpClient     tcpClient = new TcpClient(Around_Lib.GetIpByConnectionKey(ConnectionKeyBox.Text), 5759);
                NetworkStream stream    = tcpClient.GetStream();
                byte[]        bytes     = Encoding.UTF8.GetBytes(AdresIP);
                stream.Write(bytes, 0, bytes.Length);
                tcpClient.Close();
                connected = true;
            }

            catch
            {
            }
        }
コード例 #5
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            //Generujemy kolekcję interfejsów
            interfejsy       = Around_Lib.GetLocalIPAddress();
            listaInterfejsów = new List <string>();

            foreach (var x in interfejsy)
            {
                listaInterfejsów.Add(x.InterfaceName + ", Adres IP: " + x.IpAddress);
            }

            InterfacesListBox.DataSource = listaInterfejsów;

            //Teraz ustawiamy zmienne blokujące przejście dalej
            choosedMode = 0;
            InterfacesListBox.SelectedIndex = 0;
        }
コード例 #6
0
 private void RenewConnectionKeyBtn_Click(object sender, EventArgs e)
 {
     StreamingCodeLabel.Text = Around_Lib.GenerateNewConnectionKey(StrServerIP);
 }