Netzwerkprogrammierung Client/Server

Status
Nicht offen für weitere Antworten.

John_J

Mitglied
Hallo,

also wir haben an der Hochschule gelernt wie man server und client miteiander verbindet bzw wie sie miteinander kommunizieren können. Es wurde ein JavaCoding codiert diese dann ausgeführt, und dann über cmd , den Localhost + portnr angegeben ,dann wurde unser programm in der Eingabekonsole ausgeführt.


Jetzt wollte ich mich auf die Klausur vorbereiten..... nur funktioniert das mit Localhost bei mir nicht zuhause....

kann mir vielleicht einer helfen :-( ..... was muss ich den alles einstellen bzw installieren damit ich von zuhause aus üben kann.

Würd mich sehr freuen wenn mir einer helfen kann :)


Grüsse

John_J
 

hdi

Top Contributor
Was funktioniert nicht? Den Client zu starten oder den Server? LocalHost an der Hochschule ist nicht zwangsläufig
LocalHost von deinem PC daheim, es kommt darauf an wie der Server aussieht. Ich glaube ohne Code kann man dir jetzt schwer weiterhelfen.
 

John_J

Mitglied
Das Problem ist einfach das ich über cmd Localhost eingeben kann aber der findet nichts..... " Der befehl ist entweder falsch geschrieben oder konnte nicht gefunden werden" .


Also an der hochschule haben wir einen ordner gehabt auf der festplatte da müssten wir die javadateien speichern und ausführen.... dann über cmd -> localhost + portnr:

z.b:

das hier

Code:
import java.net.*;
import java.io.*;

public class Network_6b    //TCPClient
{
   // Rechnername des Servers
   static String hostname = "Localhost";
   // Port des Servers
   static int port = 10001;

   public static void main (String[] args)
   {
      try
      {
         // Erzeugen der Socket und Aufbau der Verbindung
         Socket socket = new Socket (hostname, port);
         // Senden eines Namens
         socket.getOutputStream().write
                          ("Vorlesung Wirtschaftsinformatik".getBytes ());
         // Puffer erzeugen und auf Begrüßung warten
         byte[] b = new byte[128];
         InputStream stream = socket.getInputStream();
         int size = 0;
         while (size == 0)
         {
            size = stream.available();
         }

         // Berüßung lesen und ausgeben
         stream.read (b);
         System.out.println ("Empfangen: " +
         new String (b, 0, size));
         // Verbindung beenden
         socket.close();
      }
      catch (Exception e)
      {
         // Wenn ein Fehler auftritt ...
         e.printStackTrace();
      }
   }
}
 

hdi

Top Contributor
Und wie sieht der Server aus? Erstellt du dann dort nen ServerSocket? Welchen Port haste ihm denn gegeben?
Und localhost ist glaub ich ein Linux-Command und kein gültiges Programm von Windows. Oder was nutzt du/Hochschule?
Gib mal ipconfig ein und starte den Client mal mit der IP die dir dort angezeigt wird.
 

John_J

Mitglied
hier ein anderes beispiel :-(

will das ausführen aber bekomme das irgendwie zuahuse nicht hin....
Wir benutzen in der schule xp.... zuhause benutze ich auch xp.
In der schule sind wir einfach eingabeaufforderung(cmd) gegangen localhost + portnr
dann wurde es ausgeführt.

Code:
import java.io.*;
import java.net.*;

 public class Network_2a
    //EchoServer
 { public static void main( String[ ] arg ) throws Exception
      { ServerSocket  s = new ServerSocket( 8189 );
        Socket incoming;
        while( true)
         {
           incoming = s.accept( );

           BufferedReader in = new BufferedReader
                 ( new InputStreamReader( incoming.getInputStream( )));
               PrintWriter out = new PrintWriter( incoming.getOutputStream( ),true );
               out.println( "Hello, BYE eingeben zum beenden.");


            boolean done = false;
            while ( ! done )
             {
               String line = in.readLine( );
               if ( line == null ) done = true;
               else { out.println( "Echo: "  + line ) ;
                         if ( line.trim( ).equals( "BYE" ))  done = true;   }
             }
          incoming.close( );
        }
      }
    }
 

hdi

Top Contributor
Was willst du dauernd mit deinem Localhost + Port ;) Den Server startest du einfach so, er bestimmt den Port.
Und den Client führst du auf diesem Port aus. Du behandelst die Argumente ja gar nicht, es total egal was du
da übergibst beim Client-Aufruf, du könntest auch Apfelbaum hinschreiben. Kuck dir deinen Client doch mal an.
Er muss den gleichen Port haben wie der Server, du kannst nicht bei Server 8189 schreiben und beim Client 10001.

Und wenn du das so machen willst wie in der Uni musst du den Client dementsprechend umschreiben, dass
er auch was mit den übergebenen Argumenten macht:

Code:
/* IM CLIENT */
 public static void main (String[] args)
   {
      try
      {
         // Erzeugen der Socket und Aufbau der Verbindung
         String hostname = args[0];
         int port = Integer.parseInt(args[1]);
         Socket socket = new Socket (hostname, port); 
        
         // usw...

Und dann starten:

1) Server starten : java Network_2a
2) Client starten mit Server Port: java Network_6a localhost 8189

der String "localhost" ist dann args[0] und die Nummer 8189 ist args[1], das übergibst du dem Client beim Start.
 

hdi

Top Contributor
Also: Starte den Server den du hier gepostet hast. Er hat ja den Port 8189.

Dann ändere in der Client-Datei die du vorhin gepostet hast den Port von 10001 nach 8189.

Und dann starte den Client, ohne irgendwelches komische LocalHost oder sonst was.

Und voila: Es geht. Was verstehst du denn jetzt nicht?
 
G

Gast

Gast
einfach mal das "Localhost" in ein "localhost" ändern würd ich vorschlagen ansonsten einfach "127.0.0.1" einfügen ....
 

John_J

Mitglied
Hallo,

also ich habe das mit Server/Client verbinden endlich hinbekommen


Code:
import java.io.*;
import java.net.*;


public class TCPServer
   { static int port = 10001;
     public static void main(String[] args) throws IOException
      { ServerSocket socket = new ServerSocket(port);
        Socket client = socket.accept( );
        System.out.println( "Verbunden mit"+client.getInetAddress().getHostName()+ "Port" + client.getPort());
        byte[ ] b = new byte[74];
        int off;
        InputStream stream = client.getInputStream( );
        /*int size = 0;
        while( size == 0) { size=stream.available( ); }   */


        stream.read(b);
        


        
        



     String message = new String(b);
        //String message="Halloooooooo";
        System.out.println("Nachricht empfangen" + message );
       client.close( );
       socket.close( );  }
   }


Code:
import java.io.*;
import java.net.*;

public class TCPClient
 { static String hostname = "Localhost";
   static int port = 10001;
   public static void main(String []args)
    { try
        { Socket socket = new Socket(hostname, port);
          socket.getOutputStream().write( "HalloServer2".getBytes( ) );
          
           for(int i=0; i<5; i++)
           {

            socket.getOutputStream().write(i);

           }

          socket.close();
         }
      catch ( UnknownHostException e ) { }
      catch ( IOException e )  { }
    }
 }



jetzt habe ich aber ein anderes Problem, was muss ich den genau hinschreiben damit mein Server zwischen String und int unterscheidet beim einlesen..... kann mir da einer vielleicht helfen
 
G

Gast

Gast
Dein Server bekommt immer nur Bytes. Was du dann damit anstellst ist dein / des Client ihm sein Bier.
Als einfache Lösung könntest du einfach erstmal die empfangenen Daten als String speichern und diesen dann mittels RegExp auf das Vorhandensein von Zahlen überprüfen. Natürlich gibt es auch Integer.parseInt(String), aber wenn da ein Buchstabe dabei ist, gibts ne Exception. Und bitte (evtl. nur meine Meinung) versuch das nicht in einen Try/Catch-Block zu packen und dadurch Programmlogik zu erzeugen. Das ist meines Erachtens nicht vorgesehen.
 

John_J

Mitglied
hi,

ist bei mir der ansatz schon falsch ? irgendwie habe ich noch nie was von RegExp gehört :( gibts da keine leichteren Lösungen ?
 

0001001

Bekanntes Mitglied
Eins nach dem anderen.
Versuch doch erstmal vernünftige Client/Server Klassen zu schreiben, mit denen sich Daten austauschen lassen.

Danach kannst du dich darum kümmern, wie du erkennst ob da Strings oder Integer ankommen (regex oder andere Lösungen)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Warum wird mir nichts angezeigt? Netzwerkprogrammierung Java Basics - Anfänger-Themen 1
T Netzwerkprogrammierung Anfang Java Basics - Anfänger-Themen 9
T NetzwerkProgrammierung Java Basics - Anfänger-Themen 4
M Netzwerkprogrammierung => Is connection alive? Java Basics - Anfänger-Themen 6
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
K Verständnisproblem bei Server/Client Java Basics - Anfänger-Themen 3
A Server - Client Nachrichtenaustausch über Eventbus Java Basics - Anfänger-Themen 12
berserkerdq2 Sende eine Nachricht an den Client und leere den Ausgabestorm, was ist damit genau gemeint? Java Basics - Anfänger-Themen 3
S Java Client-je nach Heap Size Größe startet Applikation oder nicht Java Basics - Anfänger-Themen 4
D Verbesserungsvorschläge zur Struktur einer Client Server Desktop Chat App Java Basics - Anfänger-Themen 24
D Unerwartetes Verhalten bei Client Server Chat App Java Basics - Anfänger-Themen 12
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
K Verständnisfrage Server/Client BufferedReader, PrintWriter Java Basics - Anfänger-Themen 2
A Client-Server Kommunikation Java Basics - Anfänger-Themen 3
I Client ObjectInputStream error... Java Basics - Anfänger-Themen 5
W Client verbindet sich nicht Java Basics - Anfänger-Themen 14
B Email Client in der eigenen Software einbauen Java Basics - Anfänger-Themen 3
S Server - für jeden Client ein Serverthread Java Basics - Anfänger-Themen 2
E SocketServer/Client stürzt ab. Address already in use. Java Basics - Anfänger-Themen 2
I Wann ist Client plattformunabhängig? Java Basics - Anfänger-Themen 22
E MCLauncher eigener Client workt nicht? Java Basics - Anfänger-Themen 4
L Erste Schritte Erste Versuche mit Server und Client Java Basics - Anfänger-Themen 7
elischa Client-Server IO und Stream Steuerung ? Java Basics - Anfänger-Themen 2
I Print Client -> Server -> Client? Java Basics - Anfänger-Themen 1
I Unique client information in WebApp Java Basics - Anfänger-Themen 3
I lokales Programm mit Client/Server Programm kommunizieren Java Basics - Anfänger-Themen 3
J TCP MultiThreaded Server und Client - irgendwo ist der Fehler, aber ich find ihn nicht Java Basics - Anfänger-Themen 3
Joew0815 Error org.apache.xmlrpc.client.XmlRpcClientConfigImpl.setUserAgent Java Basics - Anfänger-Themen 2
N Was bedeutet "Implementierung vor dem Client verbergen" bei Design Patterns? Java Basics - Anfänger-Themen 2
K Java Client > Python Server Java Basics - Anfänger-Themen 0
O Verriegeln, aber wo? Finde den Client der zu schließem ist. Java Basics - Anfänger-Themen 0
S Java - Client/Server mit Stomp kurze Frage Java Basics - Anfänger-Themen 0
T Buffererwriter keine Exception obwohl Client weg Java Basics - Anfänger-Themen 2
E Client Server Java Basics - Anfänger-Themen 12
H Einfache Client/Server-Kommunikation Java Basics - Anfänger-Themen 16
O Server Client Problem Java Basics - Anfänger-Themen 2
N Client soll mehrere Antworten von Servern gleichzeitig empfangen Java Basics - Anfänger-Themen 8
H Java Server/Client, HTML Seite anzeigen Java Basics - Anfänger-Themen 2
L Server pingt Client und fordert Info Java Basics - Anfänger-Themen 2
T Client-Fenster bei Aufruf unvollständig Java Basics - Anfänger-Themen 12
E Senden von Objects an Client. Variablenwerte kommen nicht an Java Basics - Anfänger-Themen 5
R Server/Client für Spiel Java Basics - Anfänger-Themen 2
E Client hilfe!!! Java Basics - Anfänger-Themen 7
B RMI - Fehlermeldung auf dem Client Java Basics - Anfänger-Themen 6
X Applet - Client/Server Java Basics - Anfänger-Themen 2
E Client ergibt NULL? Java Basics - Anfänger-Themen 24
E Socket (Client) dauerhaft aktiv? Java Basics - Anfänger-Themen 9
E HTTP Client - Login durchführen? Java Basics - Anfänger-Themen 4
L Ip-Adresse für Client Java Basics - Anfänger-Themen 14
L Bild versenden über Client/Server Java Basics - Anfänger-Themen 10
L Wegwerf Client Java Basics - Anfänger-Themen 26
S Klassen Server und Client Java Basics - Anfänger-Themen 3
M Client - DB-Server Struktur Java Basics - Anfänger-Themen 7
L Client aktualisieren Java Basics - Anfänger-Themen 6
U Probleme mit Server-Client implementierung Java Basics - Anfänger-Themen 5
G Server-Client Kommunikation Java Basics - Anfänger-Themen 3
J DNS-Client Java Basics - Anfänger-Themen 2
J Simpler DNS Client Java Basics - Anfänger-Themen 20
Z Tomcat Server Kommunikation zu Client Applet Java Basics - Anfänger-Themen 5
B Server-Client mit Thread ausstatten Java Basics - Anfänger-Themen 3
D Client-Server Problem Java Basics - Anfänger-Themen 2
J Netzwerkrprogammierung Client - Server Java Basics - Anfänger-Themen 3
G ArrayListe vom Server nach Client schicken Java Basics - Anfänger-Themen 17
M Flexiblen Client programmieren Java Basics - Anfänger-Themen 2
G JMS -> Wie Anmeldung vom Client an Server? Java Basics - Anfänger-Themen 4
S Webservice: Dateien downloaden vom Webserver auf den Client Java Basics - Anfänger-Themen 7
G Ausg. in JSP erzeugen die als Antwort an Client gesch. wird Java Basics - Anfänger-Themen 2
I Server / Client Programm wie einen String übergeben? Java Basics - Anfänger-Themen 6
K Client-Liste im Chat Java Basics - Anfänger-Themen 2
B Client - Server Verbindung über sockets mysql DB ansprechen? Java Basics - Anfänger-Themen 6
G Java Server Client Programmierung Java Basics - Anfänger-Themen 3
B Bild/Datei von einem Server an einen Client senden Java Basics - Anfänger-Themen 6
A Problem mit Ausgabe einer Liste über einen Client Java Basics - Anfänger-Themen 5
rambozola zugriff auf client bei j2ee anwendung Java Basics - Anfänger-Themen 10
G Mail Client öffnen Java Basics - Anfänger-Themen 9
D Server/Client Java Basics - Anfänger-Themen 8
T Datei über UDP verschicken . Speicherprobleme am Client Java Basics - Anfänger-Themen 4
H Server Client, es kommt nichts an. Java Basics - Anfänger-Themen 5
R client-applikation? Java Basics - Anfänger-Themen 5
G [Hilfe] Fileupload: Client-Server Java Basics - Anfänger-Themen 9
S Server/Client Verbindung Java Basics - Anfänger-Themen 2
G Dateidownload Client-Server (jsp) Java Basics - Anfänger-Themen 4
G Zugriff vom 'Server auf Client' Java Basics - Anfänger-Themen 4
S smtp-Client programmieren Java Basics - Anfänger-Themen 9
S Client-Server Java Basics - Anfänger-Themen 18
X client soll bat auf server ansprechen Java Basics - Anfänger-Themen 7
C client/server programm fehler ! Java Basics - Anfänger-Themen 20
F Wie kommen die Applets zum Client? Java Basics - Anfänger-Themen 7
C string über server/client verbindung senden ? Java Basics - Anfänger-Themen 4
T Client-Authentifizierung Java Basics - Anfänger-Themen 6
K [servcer/Client] Suche Server /Client Tutorial. Java Basics - Anfänger-Themen 2
G http client Java Basics - Anfänger-Themen 4
FireHorses Benutzernamen aus PrivateChannel(Interaction) auf Server bringen Java Basics - Anfänger-Themen 0
HolyFUT Best Practice Architektur WebSocket Server Java Basics - Anfänger-Themen 1
S Server Java Basics - Anfänger-Themen 4
S Server Java Basics - Anfänger-Themen 3
M CS GO Server mit Java steuern Java Basics - Anfänger-Themen 3
C Was ist nötig für ein Java-Programm auf Server für Website Java Basics - Anfänger-Themen 18

Ähnliche Java Themen

Neue Themen


Oben