public void Connect(Form1 form1) { client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); client.Connect("127.0.0.1", 9090); //MessageBox.Show("Povezan"); stream = new NetworkStream(client); formatter = new BinaryFormatter(); ZahtevOdKlijenta zahtev = new ZahtevOdKlijenta { KorisnickoIme = form1.TxtKorisnickoIme.Text }; formatter.Serialize(stream, zahtev); OdgovorServera odgovor = (OdgovorServera)formatter.Deserialize(stream); if (odgovor.Signal == Signal.ImeZauzeto) { client.Close(); MessageBox.Show("Navedeno ime postoji. Prekinuta veza sa serverom"); } else { MessageBox.Show("Uspesno uspostavljena veza sa serverom"); OdgovorServera odgovorZaPocetakIgre = (OdgovorServera)formatter.Deserialize(stream); if (odgovorZaPocetakIgre.Signal == Signal.SpremnoZaPocetak) { form1.panelBrojDva.Enabled = true; } } }
// zahtev za prijavu private bool PrijavaIgraca(Igrac noviIgrac, List <Igrac> igraci) { stream = new NetworkStream(noviIgrac.serverskiSocketIgraca); formatter = new BinaryFormatter(); ZahtevOdKlijenta zahtev = (ZahtevOdKlijenta)formatter.Deserialize(stream); // MessageBox.Show($"Poslato korisnicko ime {zahtev.KorisnickoIme}"); noviIgrac.KorisnickoIme = zahtev.KorisnickoIme; OdgovorServera odgovor = new OdgovorServera(); if (!igraci.Any(i => i.KorisnickoIme == noviIgrac.KorisnickoIme)) { odgovor.Signal = Signal.Ok; igraci.Add(noviIgrac); Sesija.Instance.listaPlayera.Add(noviIgrac); IzmenjenRezultat(); formatter.Serialize(stream, odgovor); return(true); } else { odgovor.Signal = Signal.ImeZauzeto; formatter.Serialize(stream, odgovor); return(false); } }
internal void SendOdgovor(string text) { ZahtevOdKlijenta zahtev = new ZahtevOdKlijenta { Odgovor = text }; formatter.Serialize(stream, zahtev); }
private void IgraZaJednogIgraca(Igrac i) { try { NetworkStream stream = new NetworkStream(i.serverskiSocketIgraca); BinaryFormatter formatter = new BinaryFormatter(); foreach (Pitanje p in igra.ListaPitanja) { OdgovorServera odgovor = new OdgovorServera { TeksPitanja = p.PitanjeTekst }; formatter.Serialize(stream, odgovor); ZahtevOdKlijenta poruka = (ZahtevOdKlijenta)formatter.Deserialize(stream); OdgovorServera odg = new OdgovorServera(); bool tacanOdogovor = (poruka.Odgovor == p.TacanOdgovor); if (tacanOdogovor && !p.Odgovoreno) { i.BrojPoena += p.BrojPoena; odg.Poeni = i.BrojPoena; i.BrojTacnihOdgovora++; p.Odgovoreno = true; p.Odgvorio = i.KorisnickoIme; odg.Poruka = $"Tacan odgovor ({p.BrojPoena})"; } else if (tacanOdogovor && p.Odgovoreno) { odg.Poruka = $"Tacan odgovor, ali je prvo odgovorio {p.Odgvorio} ({0})"; odg.Poeni = i.BrojPoena; } else { i.BrojPoena -= p.BrojPoena * 0.1; odg.Poeni = i.BrojPoena; i.BrojNetacnihOdgovora++; odg.Poruka = $"Netacan odgovor ({p.BrojPoena*-0.1})"; } server.IzmenjenRezultat(); formatter.Serialize(stream, odg); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }