Ejemplo n.º 1
0
        void polaczSie() {
            // uruchom oddzielny watek dla obiektu odpowiedzialnego za komunikacje
            komunikator = dajKomunikator();
            if (komunikator == null) 
            {
                comboStatus.SelectedIndex = 1;
                return; 
            }

            polaczony = true;
            // zapisujemy sie jako sluchacz wydarzenia NowaWiadomosc
            komunikator.NowaWiadomosc += komunikator_NowaWiadomosc;
            // zapisujemy sie jako sluchacz wydarzenia ZmianaStanuPolaczenia
            komunikator.ZmianaStanuPolaczenia += komunikator_ZmianaStanuPolaczenia;

            komunikator.Opis = ustawienia.Opis;
            // nawiaz polaczenia z kontaktami
            komunikator.Start();
           
            oknaCzatu.Values.ToList().ForEach(o => o.Komunikator = komunikator);
        }
Ejemplo n.º 2
0
 void rozlaczSie() {
     // glowne okno programu zostalo zamkniete, dlatego zatrzymujemy dzialanie
     // obiektu odpowiedzialnego za komunikacje
     komunikator.Stop();
     polaczony = false;
     // zakoncz watek obiektu odpowiedzialnego za komunikacje
     
     // zaktualizuj obiekt w oknach czat
     oknaCzatu.Values.ToList().ForEach(o => o.Komunikator = null);            
     komunikator = null;
 }
Ejemplo n.º 3
0
        Komunikator dajKomunikator() {
            var mapaAdresowIpKontaktow = new Dictionary<string, IPAddress>();
            kontakty.ForEach(k => mapaAdresowIpKontaktow.Add(k.ID, k.IP));

            if (ustawienia.SSLWlaczone && ustawienia.Certyfikat == null) 
            { 
                var haslo = poprosHasloCertyfikatu();
                if (haslo == null)
                {
                    MessageBox.Show("Brak hasła do certyfikatu uniemożliwia połączenie.");
                    return null;
                }
                
                try{
                    ustawienia.Certyfikat = new X509Certificate2(ustawienia.SSLCertyfikatSciezka, haslo);
                }catch(CryptographicException ex){
                    MessageBox.Show("Nastąpił błąd podczas otwierania certyfikatu: " + ex.Message);
                    return null;
                }
            }

            // zainicjalizuj obiekt odpowiedzialny za przesylanie / odbieranie wiadomosci
            var komunikator = new Komunikator(mapaAdresowIpKontaktow, ustawienia);
            return komunikator;
        }