示例#1
0
        protected override void BeginDataTransmission(NetworkStream stream)
        {
            byte[] buffer = new byte[Buffer_size];

            while (true)
            {
                tcpClient.GetStream().Write(instr, 0, instr.Length);
                //Odbieranie wiadomości

                tcpClient.GetStream().Read(buffer);
                string text = Encoding.UTF8.GetString(buffer).Replace("\n", "").Replace("\0", "");
                Console.Write(text);

                //Rozpoznawanie otrzymanego komunikatu i odpowiedzi
                if (text == "shutdown")
                {
                    Console.WriteLine("Zamykam serwer\n");
                    tcpClient.Close();
                    shutdown = true;
                    break;
                }
                else if (text == "quit")
                {
                    Console.WriteLine("Rozłączam\n");
                    tcpClient.Close();
                    break;
                }
                else if (text == "suchar")
                {
                    Console.WriteLine("Potwierdzam\n");
                    String sucharek = suchy.genJoke();
                    byte[] pozytyw  = Encoding.ASCII.GetBytes(sucharek);
                    tcpClient.GetStream().Write(pozytyw, 0, pozytyw.Length);
                }
                else
                {
                    Console.WriteLine("Odrzucam\n");
                    tcpClient.GetStream().Write(bytes, 0, bytes.Length);
                }
            }
        }
示例#2
0
        protected override void BeginDataTransmission(NetworkStream stream)
        {
            char[] trim   = { (char)0x0 };
            byte[] buffer = new byte[Buffer_size];
            //stream = tcpClient.GetStream();
            //suchy.saveToFile();

            while (true)
            {
                try
                {
                    stream.Write(instr, 0, instr.Length);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
                //Odbieranie wiadomości

                //stream.Read(buffer,0,buffer.Length);
                //Array.Clear(buffer, 0, buffer.Length);
                //string text = Encoding.UTF8.GetString(buffer).Replace("\n", "").Replace("\0", "");
                //Console.Write(text);
                int dlugosc = stream.Read(buffer, 0, buffer.Length);
                if (Encoding.ASCII.GetString(buffer, 0, dlugosc) == "\r\n")
                {
                    stream.Read(buffer, 0, buffer.Length);
                }
                string text = Encoding.ASCII.GetString(buffer).Trim(trim);
                Array.Clear(buffer, 0, buffer.Length);
                Console.WriteLine(text);

                //Rozpoznawanie otrzymanego komunikatu i odpowiedzi
                //dodawanie suchara
                if (text == "nowy")
                {
                    Console.WriteLine("Dodawanie suchara\n");
                    stream.Write(dod, 0, dod.Length);
                    dlugosc = stream.Read(buffer, 0, buffer.Length);
                    if (Encoding.ASCII.GetString(buffer, 0, dlugosc) == "\r\n")
                    {
                        stream.Read(buffer, 0, buffer.Length);
                    }
                    string nowy = Encoding.ASCII.GetString(buffer).Trim(trim);
                    Array.Clear(buffer, 0, buffer.Length);
                    Console.WriteLine(nowy);
                    suchy.addJoke(nowy);
                }
                else if (text == "quit") //rozłączanie
                {
                    Console.WriteLine("Rozłączam\n");
                    try
                    {
                        stream.Close();
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                    }
                    break;
                }
                else if (text == "suchar") //podawanie suchara
                {
                    Console.WriteLine("Potwierdzam\n");
                    String sucharek = suchy.genJoke();
                    byte[] pozytyw  = Encoding.ASCII.GetBytes(sucharek);
                    stream.Write(pozytyw, 0, pozytyw.Length);
                }
                else
                {
                    Console.WriteLine("Odrzucam\n");
                    stream.Write(bytes, 0, bytes.Length);
                }
            }
        }
示例#3
0
        /// <summary>
        /// Metoda Run obsługująca łączenie klienta i pętlę działania serwera
        /// </summary>
        public void Run()
        {
            //Setup serwera
            TcpListener server = new TcpListener(IPAddress.Parse("127.0.0.1"), 8008);

            server.Start();
            Console.WriteLine("Odpalam server\n");

            //Komunikaty i obiekt sucharów
            string negatyw    = "Ja tylko serwuje suchary\n";
            string instrukcja = "\n\n\"suchar\" wysyla suchara, \"quit\" rozlacza, \"shutdown\" zamyka serwer\n";

            byte[] instr = Encoding.ASCII.GetBytes(instrukcja);
            byte[] bytes = Encoding.ASCII.GetBytes(negatyw);
            Joke   suchy = new Joke();

            bool shutdown = false;

            //Pętla łączenia
            while (shutdown == false)
            {
                //Łączenie z klientem
                TcpClient client = server.AcceptTcpClient();
                Console.WriteLine("Polaczono\n");

                //Pętla serwera
                while (true)
                {
                    client.GetStream().Write(instr, 0, instr.Length);
                    //Odbieranie wiadomości
                    byte[] buffer = new byte[1024];
                    client.GetStream().Read(buffer);
                    string text = Encoding.UTF8.GetString(buffer).Replace("\n", "").Replace("\0", "");
                    Console.Write(text);

                    //Rozpoznawanie otrzymanego komunikatu i odpowiedzi
                    if (text == "shutdown")
                    {
                        Console.WriteLine("Zamykam serwer\n");
                        client.Close();
                        shutdown = true;
                        break;
                    }
                    else if (text == "quit")
                    {
                        Console.WriteLine("Rozłączam\n");
                        client.Close();
                        break;
                    }
                    else if (text == "suchar")
                    {
                        Console.WriteLine("Potwierdzam\n");
                        String sucharek = suchy.genJoke();
                        byte[] pozytyw  = Encoding.ASCII.GetBytes(sucharek);
                        client.GetStream().Write(pozytyw, 0, pozytyw.Length);
                    }
                    else
                    {
                        Console.WriteLine("Odrzucam\n");
                        client.GetStream().Write(bytes, 0, bytes.Length);
                    }
                }
            }
        }