Avatar billede jjjMiAjjj Nybegynder
17. oktober 2010 - 01:21 Der er 6 kommentarer

Client Server, retunere mindste værdi

Hi..
I have a client server program ..
The Server returns the smallest number of two numbers entered by the client.

The numbers is sent to the server by a one string and the numbers are seperated by a comma. The samllest of the two numbers should returns to the client.

Here is the code, but i think there is something wrong.. Any help please :)

Klient koden:

    Console.WriteLine("Indtast 2 tal separeret med et komma");
                string ToTal = Console.ReadLine();


                writer.Write(Convert.ToString(ToTal));

                string answer = reader.ReadString();
                Console.WriteLine(answer);

Serrver Koden:

  string ToTal = reader.ReadString();

                Console.WriteLine(Math.Min(ToTal)); // Hvordan får denne metode til kun at læse en streng? måske skal jeg bruge Split() metoden? Og læset Math metoden ik kun int værdier?

På forhånd Tak :)
Avatar billede arne_v Ekspert
17. oktober 2010 - 02:00 #1
string[] ToTal = reader.ReadString().Split(',');
int v1 = int.Parse(ToTal[0]);
int v2 = int.Parse(ToTal[1]);
Console.WriteLine(Math.Min(v1,v2));
Avatar billede arne_v Ekspert
17. oktober 2010 - 02:01 #2
writer.Write(Convert.ToString(ToTal));


skal nok være:

writer.WriteLine(ToTal);
writer.Flush();
Avatar billede jjjMiAjjj Nybegynder
18. oktober 2010 - 23:01 #3
Tak for dit svar :) ..

Jeg har lige et spørgsmål til..
Jeg er ved at lave en client server med UDP protokol, men den vil ikke acceptere hverken reader eller writer for at skrive til serveren.. Er det fordi man bruger noget andet med UDP??

Her er min kode, som jeg tror er helt galt!

Klient koden:
static void Main(string[] args)
        {
            IPEndPoint receivePoint =
                  new IPEndPoint(new IPAddress(0), 0);
            UdpClient client = new UdpClient(50001); // recieve port on localost

            while (true)
            {
                Console.WriteLine("Indtast tal1");
                int tal1 = Convert.ToInt32(Console.ReadLine());

                Console.WriteLine("Indtast tal 2");
                int tal2 = Convert.ToInt32(Console.ReadLine());

              writer.Write(Convert.ToString(tal1));
                writer.Write(Convert.ToString(tal2));
                /*
                // create packet (datagram) as string
                Console.Write("Package to send: ");
                string packet = Console.ReadLine();
                // convert packet to byte array                           
                byte[] data = System.Text.Encoding.ASCII.GetBytes(packet);
                Console.WriteLine("Sending packet containing: " + packet);
                client.Send(data, data.Length, "1.16.1.33", 50000);
                Console.WriteLine("Packet sent.\n");

                // recieve package
                data = client.Receive(ref receivePoint);
                Console.WriteLine("Packet received. Length: " + data.Length + " Containing: " +
                  System.Text.Encoding.ASCII.GetString(data) + "\n");
                */
            }

Serverkoden:
static void Main(string[] args)
        {
            // connectionless echo server
            UdpClient client = new UdpClient(50000);
            Console.WriteLine("Server started.\n");
            while (true)
            {
                int result;

                string tal1 = reader.ReadString();
                string tal2 = reader.ReadString();

                int result = Convert.ToInt32(tal1) - Convert.ToInt32(tal2);
                writer.Write(Convert.ToString(result));

                IPEndPoint receivePoint =
                    new IPEndPoint(new IPAddress(0), 0);
                byte[] data = client.Receive(ref receivePoint);
                string message = System.Text.Encoding.ASCII.GetString(data);
                // display on server:
                string show = "Packet received. Length: " + data.Length +
                            " Containing: " + message +
                            " From IP: " + receivePoint.Address.ToString();
                Console.WriteLine(show);

                // "broadcast" message
                Console.WriteLine("\nEcho data back to client...");
                client.Send(data, data.Length, receivePoint);
                Console.WriteLine("\nPacket sent.");
            }

På forhånd tak..
Avatar billede arne_v Ekspert
19. oktober 2010 - 00:09 #4
UDP er ikke stream orienteret som TCP, så du skal skrive og læse enkelt beskeder og kan ikke bruge de normale writer og reader metoder.
Avatar billede arne_v Ekspert
19. oktober 2010 - 00:09 #5
svar
Avatar billede arne_v Ekspert
20. november 2010 - 00:21 #6
??
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester