Пример #1
0
        /// <summary>
        /// Loguje do serwera
        /// </summary>
        /// <returns>Zwraca odpowiedz od serwera</returns>
        public int login()
        {
            if (log == "" || haslo == "") return -2;
            try
            {
                socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
                IPAddress remoteIPAddress = System.Net.IPAddress.Parse(serverIP);
                IPEndPoint remoteEndPoint = new System.Net.IPEndPoint(remoteIPAddress, serverPort);
                socket.Connect(remoteEndPoint);
            }
            catch (Exception)
            {
                throw new Wyjatki.BladPolaczenia("Blad podczas laczenia do serwera. Sprawdz adres oraz port");
            }
            try
            {
                StringWriter stringWriter = new StringWriter();
                klientLogowanie logowanie = new klientLogowanie(log, haslo, ASS8___Logowanie.wersja);
                XmlSerializer xml = new XmlSerializer(typeof(klientLogowanie));
                xml.Serialize(stringWriter, logowanie, names);
                string stR = stringWriter.ToString() + endl;
                wyslij(ASCIIEncoding.ASCII.GetBytes(stR), stR.Length);
            }

            catch (Exception)
            {
                throw new Wyjatki.BladWysylania("Blad podczas wysylania danych na serwer. Sprawdz polaczenie z internetem, oraz ewentualnie ustaw proxy -- zapytanie o logowanie");
            }
            string str;
            try
            {
                str = pobierz();
            }
            catch (Wyjatki.BladOdbierania bo)
            {
                bo.add("-- odpowiedz logowania");
                throw bo;
            }
            catch (Exception)
            {
                throw new Wyjatki.BladNieokreslony("Nieokreslony blad programu -- odpowiedz logowania");
            }
            serwerLogowanie odpSerwera = new serwerLogowanie();
            try
            {
                XmlSerializer xml = new XmlSerializer(typeof(serwerLogowanie));
                StringReader stringReader = new StringReader(str);
                odpSerwera = (serwerLogowanie)xml.Deserialize(stringReader);
            }
            catch (Exception)
            {
                throw new Wyjatki.BladParsowania("Dostano bledne dane od serwera lub nastapil blad programu -- deserializacja odpowiedzi o logowanie");
            }
            if (odpSerwera.odpowiedz == 1)
            {
                throw new Wyjatki.BladNieokreslony("Bledny login lub haslo");
            }
            if (odpSerwera.odpowiedz == 0)
                sessionID = odpSerwera.sesja;

            return odpSerwera.odpowiedz;
        }