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() + "\">"); } }
public d_f_archiwum(d_f_klient d_f_klient) { InitializeComponent(); ustawienia konfiguracja = new ustawienia(); p = d_f_klient.login; CzytUzytkownikow(); }
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(); }); }
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(); }); }
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(); } }
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()); } } }
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; } } }