Exemplo n.º 1
0
        public oknoRozmowy(string p, d_f_klient d_f_klient)
        {
            InitializeComponent();
            this.p          = p;
            this.d_f_klient = d_f_klient;
            this.Text       = p;
            ustawienia konfiguracja = new ustawienia();

            wiadomosc.nadawca = d_f_klient.login;
            this.GotFocus    += (s, e) => { f_wb_oknorozmowy.Document.Body.ScrollTop += Int16.MaxValue; };
            if (d_f_klient.tempRozmowy.ContainsKey(p))
            {
                using (StreamReader sr = new StreamReader(d_f_klient.tempRozmowy[p]))
                {
                    while (sr.Peek() >= 0)
                    {
                        f_wb_oknorozmowy.Document.Write(sr.ReadLine());
                    }
                }
                f_wb_oknorozmowy.Document.Write("<html><head><style>body, table{font-size:10pt; font-family:Verdana, Geneva, sans-serif; margin:3px, 3px, 3px, 3px; font-color:black;}</style></head><body width=\"" + (f_wb_oknorozmowy.ClientSize.Width - 20).ToString() + "\">");
            }
            else
            {
                f_wb_oknorozmowy.Document.Write("<html><head><style>body, table{font-size:10pt; font-family:Verdana, Geneva, sans-serif; margin:3px, 3px, 3px, 3px; font-color:black;}</style></head><body width=\"" + (f_wb_oknorozmowy.ClientSize.Width - 20).ToString() + "\">");
            }
        }
Exemplo n.º 2
0
        public d_f_archiwum(d_f_klient d_f_klient)
        {
            InitializeComponent();
            ustawienia konfiguracja = new ustawienia();

            p = d_f_klient.login;
            CzytUzytkownikow();
        }
Exemplo n.º 3
0
        private void d_bw_wysylaj_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker bw = (BackgroundWorker)sender;

            ustawienia konfiguracja = new ustawienia();
            FileStream file         = File.OpenRead(d_f_klient.okna[komunikat.nadawca].infoFile.FullName);
            int        BuforSize    = 0;
            TcpClient  client       = new TcpClient(komunikat.tresc.Split(';')[1].Split(':')[0], (int)konfiguracja.s_port + 1);

            byte[]        SendBufor = new byte[client.ReceiveBufferSize];
            NetworkStream stream    = client.GetStream();

            while ((BuforSize = file.Read(SendBufor, 0, SendBufor.Length)) > 0)
            {
                if (bw.CancellationPending == true)
                {
                    e.Cancel = true;
                    file.Close();
                    stream.Close();
                    client.Close();

                    return;
                }
                try
                {
                    stream.Write(SendBufor, 0, BuforSize);
                    postep += BuforSize;
                }
                catch
                {
                    if (d_f_klient.okna.ContainsKey(komunikat.nadawca))
                    {
                        kk.WpiszTekst(((oknoRozmowy)d_f_klient.okna[komunikat.nadawca]).f_wb_oknorozmowy, "IM", "Transfer się nie powiódł");
                    }
                    this.Invoke((MethodInvoker) delegate() { this.Close(); });
                    return;
                }
            }
            file.Close();
            stream.Close();
            client.Close();
            this.Invoke((MethodInvoker) delegate() { this.Close(); });
        }
Exemplo n.º 4
0
        private void d_bw_odbieraj_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker bw = (BackgroundWorker)sender;

            ustawienia  konfiguracja = new ustawienia();
            TcpListener serwer       = new TcpListener(IPAddress.Parse(d_f_klient.klient.Client.LocalEndPoint.ToString().Split(':')[0]), (int)konfiguracja.s_port + 1);

            serwer.Start();
            TcpClient client    = serwer.AcceptTcpClient();
            int       BuforSize = 0;

            byte[]        ReceiveBufor = new byte[client.ReceiveBufferSize];
            NetworkStream stream       = client.GetStream();
            FileStream    nowyPlik     = new FileStream(p, FileMode.Create, FileAccess.Write, FileShare.ReadWrite);

            while ((BuforSize = stream.Read(ReceiveBufor, 0, ReceiveBufor.Length)) > 0)
            {
                if (bw.CancellationPending == true)
                {
                    e.Cancel = true;
                    nowyPlik.Close();
                    stream.Close();
                    client.Close();
                    serwer.Stop();
                    return;
                }
                nowyPlik.Write(ReceiveBufor, 0, BuforSize);
                postep += BuforSize;
            }
            if (postep != d_f_klient.rozmiar)
            {
                this.Invoke((MethodInvoker) delegate() { kk.WpiszTekst(oknoRozmowy.f_wb_oknorozmowy, "IM", "Transfer się nie powiódł"); });
            }
            nowyPlik.Close();
            stream.Close();
            client.Close();
            serwer.Stop();
            this.Invoke((MethodInvoker) delegate() { this.Close(); });
        }
Exemplo n.º 5
0
 private void d_b_zmien_Click(object sender, EventArgs e)
 {
     if (d_tb_noweHaslo.Text != d_tb_noweHaslo2.Text)
     {
         MessageBox.Show("Nowe hasło w pierwszym wierszu i w drugim musi być takie samo", "Błąd zmiany hasła", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
     else if (string.IsNullOrWhiteSpace(d_tb_strHaslo.Text))
     {
         MessageBox.Show("Musisz podać stare hasło", "Błąd zmiany hasła", MessageBoxButtons.OK, MessageBoxIcon.Information);
     }
     else
     {
         ustawienia  konfiguracja = new ustawienia();
         MessageData nowehaslo    = new MessageData();
         nowehaslo.komenda  = "NEWPASS";
         nowehaslo.tresc    = kk.Hash(d_tb_strHaslo.Text) + ":" + kk.Hash(d_tb_noweHaslo.Text);
         nowehaslo.nadawca  = d_f_klient.login;
         nowehaslo.odbiorca = "Serwer";
         BinaryWriter bw = new BinaryWriter(d_f_klient.ns);
         bw.Write(kk.ConvertToXML(nowehaslo));
         this.Close();
     }
 }
Exemplo n.º 6
0
        internal void Polacz(string p, string p_2)
        {
            if (!polaczenieAktywne)
            {
                ustawienia konfiguracja = new ustawienia();
                try
                {
                    klient = new TcpClient(konfiguracja.s_adresIP, (int)konfiguracja.s_port);
                }
                catch (SocketException se)
                {
                    kk.SetText(d_lb_komunikaty, se.Message);
                    return;
                }
                login = p;
                konfiguracja.Save();
                ns = klient.GetStream();
                polaczenieAktywne         = true;
                d_ms_konfiguracja.Enabled = false;
                d_ms_polacz.Enabled       = false;
                d_ms_rozlacz.Enabled      = true;
                d_ms_haslo.Enabled        = true;
                d_t_timer.Enabled         = true;
                d_ms_archiwum.Enabled     = true;

                foreach (string key in okna.Keys)
                {
                    kk.WpiszTekst(okna[key].f_wb_oknorozmowy, "IM", "Połączenie wznowione");
                    this.Invoke((MethodInvoker) delegate()
                    {
                        okna[key].f_tb_wiadomosc.Enabled  = true;
                        okna[key].f_b_wyslij.Enabled      = true;
                        okna[key].d_ll_wyslijPlik.Enabled = true;
                        okna[key].d_ll_tak.Enabled        = true;
                        okna[key].d_ll_nie.Enabled        = true;
                    });
                }


                komunikat.nadawca  = p;
                komunikat.odbiorca = klient.Client.RemoteEndPoint.ToString();
                komunikat.komenda  = "HI";
                komunikat.tresc    = p + ":" + p_2;
                BinaryWriter pisanie = new BinaryWriter(ns);
                pisanie.Write(kk.ConvertToXML(komunikat));

                BinaryReader czytanie = new BinaryReader(ns);
                komunikat = kk.ConvertOutXML(czytanie.ReadString());
                if (komunikat.komenda == "HI")
                {
                    kk.SetText(d_lb_komunikaty, DateTime.Now.ToShortTimeString() + " " + komunikat.tresc);
                    d_ss_status.Text  = "Połączono";
                    d_ss_status.Image = Properties.Resources.circle_green;
                    d_bw_komunikacja.RunWorkerAsync();
                }
                else if (komunikat.komenda == "ERROR")
                {
                    kk.SetText(d_lb_komunikaty, komunikat.tresc);
                    d_ms_rozlacz_Click(new object(), new EventArgs());
                }
            }
        }
Exemplo n.º 7
0
        private void d_bw_komunikacja_DoWork(object sender, DoWorkEventArgs e)
        {
            BinaryReader czytanie     = new BinaryReader(ns);
            ustawienia   konfiguracja = new ustawienia();

            while (true)
            {
                try
                {
                    komunikat = kk.ConvertOutXML(czytanie.ReadString());
                }
                catch (IOException)
                {
                    return;
                }
                switch (komunikat.komenda)
                {
                case "LISTUSERS":
                    kk.ClearText(d_lb_uzytkownicy);
                    string[] user = komunikat.tresc.Split(new char[] { ':' });
                    for (int i = 0; i < user.Length - 1; i++)
                    {
                        if (login != user[i].Split(';')[1])
                        {
                            kk.SetText(d_lb_uzytkownicy, user[i].Split(';')[0]);
                        }
                        else
                        {
                            this.Invoke((MethodInvoker) delegate()
                            {
                                this.Text = "IM - " + user[i].Split(';')[0];
                            });
                        }
                    }
                    break;

                case "PING":
                    ping = DateTime.Now;
                    break;

                case "SAY":
                    kk.newMessage(this, komunikat);
                    break;

                case "ERROR":
                    kk.newMessage(this, komunikat);
                    this.Invoke((MethodInvoker) delegate()
                    {
                        okna[komunikat.nadawca].f_tb_wiadomosc.Enabled = false;
                        okna[komunikat.nadawca].f_b_wyslij.Enabled     = false;
                    });
                    break;

                case "PASSANS":
                    kk.SetText(d_lb_komunikaty, komunikat.tresc);
                    break;

                case "FILE":
                    kk.newMessage(this, komunikat, "IM", "Użytkownik przesyła plik: <b>" + komunikat.tresc.Split(';')[0] + "</b> o rozmiarze: <b>" + long.Parse(komunikat.tresc.Split(';')[1]) / 1024 + " Kb </b>");
                    plik    = komunikat.tresc.Split(';')[0];
                    rozmiar = long.Parse(komunikat.tresc.Split(';')[1]);
                    this.Invoke((MethodInvoker) delegate()
                    {
                        okna[komunikat.nadawca].d_l_odbierz.Enabled = true;
                        okna[komunikat.nadawca].d_ll_tak.Enabled    = true;
                        okna[komunikat.nadawca].d_ll_nie.Enabled    = true;
                    });
                    break;

                case "FILEYES":
                    kk.newMessage(this, komunikat, "IM", "Użytkownik potwierdził odbiór pliku: <b>" + komunikat.tresc.Split(';')[0] + "</b>");
                    rozmiar = okna[komunikat.nadawca].infoFile.Length;
                    this.Invoke((MethodInvoker) delegate()
                    {
                        d_f_postepPobierania oknoWysylanie = new d_f_postepPobierania(this, komunikat, okna[komunikat.nadawca].infoFile.Name);
                        oknoWysylanie.Parent = okna[komunikat.nadawca].Parent;
                        oknoWysylanie.Show();
                    });
                    break;

                case "FILENO":
                    kk.newMessage(this, komunikat, "IM", "Użytkownik odrzucił transfer pliku: <b>" + plik + "</b>");
                    break;
                }
            }
        }