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;
                }
            }
        }
예제 #2
0
        // 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);
        }
예제 #4
0
 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);
     }
 }