tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Thomas Darimont
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
363
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    yuro yuro ist offline Mitglied Silber
    Registriert seit
    Jan 2010
    Beiträge
    89
    Servus,

    hab ne kleine frage

    und zwar wollt ich mal wissen wie ich folgendes in ein Pseudo-Code schreiben könnt.

    Ein Client sendet 2 Zahlen an den Server, die entgegengenommen, addiert und wieder an den Client zurückgeschickt werden.

    Benutzen der Klassen ServerSocket, Socket, Input/Output Stream..

    Also wie das programmiert wird ist mir klar.. nur wie schreibt man sowas als Pseudo-Code?

    Danke für reichliche Tipps
     

  2. #2
    Registriert seit
    Jun 2002
    Ort
    Saarbrücken (Saarland)
    Beiträge
    9.886
    Blog-Einträge
    29
    Hallo,

    schau mal hier:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    
    package de.tutorials.training;
     
    import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.Scanner;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
     
    public class SocketExample {
     
        public static void main(String[] args) {
            
            
            /*
             * Pseudo-Code
             * 
             * [Server-Thread]
             * server = new socketserver(4711)
             *        
             * client = server.waitForClient()
             * 
             * ...
             * [Client-Thread]
             * 
             * client = new socket("localhost",4711) 
             * 
             * a = console.readInt()
             * client.writeInt(a)
             * 
             * b=console.readInt()
             * client.writeInt(b)
             * 
             * ...
             * [Server-Thread]
             * a = server.readInt();
             * b = server.readInt();
             * 
             * c = a + b;
             * 
             * server.writeInt(c);
             * 
             * [Client-Thread]
             * 
             * c = client.readInt();
             * 
             * print "Ergebnis: " + c 
             */
            
            
            ExecutorService executorService = Executors.newFixedThreadPool(2);
            
            executorService.execute(new Server(4711));
            executorService.execute(new Client("localhost",4711));
            
            executorService.shutdownNow();
        }
     
        static class /* SingleThreaded */ Server implements Runnable {
     
            private final int port;
     
            public Server(int port) {
                this.port = port;
            }
     
            @Override
            public void run() {
                try (ServerSocket serverSocket = new ServerSocket(port)) {
                    
                    System.out.println(getClass().getSimpleName() + " Warte auf Client-Verbindung...");
                    
                    Socket socket = serverSocket.accept();
                    
                    System.out.println(getClass().getSimpleName() + " Neue Client-Verbindung: " + socket);
     
                    try (DataInputStream in = new DataInputStream(socket.getInputStream());
                         DataOutputStream out = new DataOutputStream(socket.getOutputStream())) {
     
                        int a = in.readInt();
                        int b = in.readInt();
     
                        int c = a + b;
     
                        out.writeInt(c);
     
                    }
     
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
     
        static class Client implements Runnable {
            
            private final String hostname;
            private final int port;
            
            
            public Client(String hostname, int port) {
                this.port = port;
                this.hostname = hostname;
            }
     
            @Override
            public void run() {
                try(Socket socket = new Socket(hostname,port)){
                    try (DataInputStream in = new DataInputStream(socket.getInputStream());
                         DataOutputStream out = new DataOutputStream(socket.getOutputStream());
                         Scanner scanner = new Scanner(System.in)) {
                
                        System.out.print("Zahl 1: ");
                        int a = scanner.nextInt();
                        
                        System.out.print("Zahl 2: ");
                        int b = scanner.nextInt();
                        
                        out.writeInt(a);
                        out.writeInt(b);
                        
                        int c = in.readInt();
                        
                        System.out.println("Ergebnis: (" + a + "+" + b +") = " + c);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
     
    }

    Ausgabe:
    Code :
    1
    2
    3
    4
    5
    
    Server Warte auf Client-Verbindung...
    Server Neue Client-Verbindung: Socket[addr=/127.0.0.1,port=57943,localport=4711]
    Zahl 1: 12
    Zahl 2: 34
    Ergebnis: (12+34) = 46

    Gruß Tom
    yuro bedankt sich. 
    Java rocks!
    How to become a good Java Programmer?
    Does IT in Java and .Net
    The only valid measurement of code quality: WTFs / minute
    Blog
    Xing
    Twitter

  3. #3
    yuro yuro ist offline Mitglied Silber
    Registriert seit
    Jan 2010
    Beiträge
    89
    vielen lieben dank thomas
     

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 04.03.11, 14:18
  2. Socket Programmierung
    Von thomasbe im Forum Java
    Antworten: 4
    Letzter Beitrag: 20.07.08, 18:02
  3. Socket Programmierung
    Von marie20 im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 27.04.05, 10:46
  4. Socket-Programmierung
    Von lindin im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 06.09.04, 14:54
  5. Infos vom Server bekommen(Socket Programmierung)
    Von Neofox im Forum .NET Archiv
    Antworten: 3
    Letzter Beitrag: 27.08.03, 16:40