Hallo zusammen,
ich meld mich mal wieder zurück da ich wiedermals ein Problem habe.
Ich bin Java Anfänger und habe heute angefangen, mit Netzwerken zu arbeiten.
Mein Ziel ist vorerst dass ich 2 Anwendungen habe, einen Server und einen Client. Der Client liest einen String ein und übermittelt ihn an den Server. Gut das klappt soweit auch.
ChatClient:
ChatServer:
Jedoch möchte ich nicht nur einen String übergeben, sondern möchte dass man über den Client beliebig viele Strings übermitteln kann, die dann vom Server ausgegeben werden.
Meine erste Idee war es, in den Server eine Schleife einzubauen, was auch so halb geklappt hat.
Server2:
Client2:
Über den Client kann man nun 2 Strings eingeben, die an den Server übermittelt werden.
Leider sieht die Ausgabe des Servers, wenn ich Beispielweise 1 und danach 2 eingebe wie auf dem folgenden Screenshot aus.
Ich hoffe ich habe mein Problem verständlich geschildert und warte gespannt auf Anworten.
Liebe Grüße
PaP
ich meld mich mal wieder zurück da ich wiedermals ein Problem habe.
Ich bin Java Anfänger und habe heute angefangen, mit Netzwerken zu arbeiten.
Mein Ziel ist vorerst dass ich 2 Anwendungen habe, einen Server und einen Client. Der Client liest einen String ein und übermittelt ihn an den Server. Gut das klappt soweit auch.
ChatClient:
Java:
import java.net.*;
import java.io.*;
import java.util.*;
public class PatChatClient
{
public static void main(String[] args)
{
try
{
Socket socket = new Socket("127.0.0.1", 1000);
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Nachricht eingeben: ");
String body = input.readLine();
PrintWriter pw = new PrintWriter(socket.getOutputStream());
pw.print(body);
pw.flush();
socket.close();
}
catch(IOException e)
{
System.err.println(e.toString());
}
}
}
ChatServer:
Java:
import java.net.*;
import java.io.*;
public class PatChatServer
{
public static void main(String[] args)
{
try
{
ServerSocket serversocket = new ServerSocket(1000);
Socket socket = serversocket.accept();
BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
System.out.println("Neue Nachricht: " + br.readLine());
socket.close();
}
catch(IOException e)
{
System.err.println(e.toString());
}
}
}
Jedoch möchte ich nicht nur einen String übergeben, sondern möchte dass man über den Client beliebig viele Strings übermitteln kann, die dann vom Server ausgegeben werden.
Meine erste Idee war es, in den Server eine Schleife einzubauen, was auch so halb geklappt hat.
Server2:
Java:
import java.net.*;
import java.io.*;
public class PatChatServer
{
public static void main(String[] args)
{
try
{
ServerSocket serversocket = new ServerSocket(1000);
do {
Socket socket = serversocket.accept();
BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
System.out.println("Neue Nachricht: " + br.readLine());
}while (1 == 1);
//socket.close();
}
catch(IOException e)
{
System.err.println(e.toString());
}
}
}
Client2:
Java:
import java.net.*;
import java.io.*;
import java.util.*;
public class PatChatClient
{
public static void main(String[] args)
{
try
{
Socket socket = new Socket("127.0.0.1", 1000);
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String body;
PrintWriter pw = new PrintWriter(socket.getOutputStream());
System.out.print("Nachricht eingeben: ");
body = input.readLine();
pw.print(body);
pw.flush();
System.out.print("Nachricht eingeben: ");
body = input.readLine();
pw.print(body);
pw.flush();
socket.close();
}
catch(IOException e)
{
System.err.println(e.toString());
}
}
}
Über den Client kann man nun 2 Strings eingeben, die an den Server übermittelt werden.
Leider sieht die Ausgabe des Servers, wenn ich Beispielweise 1 und danach 2 eingebe wie auf dem folgenden Screenshot aus.

Ich hoffe ich habe mein Problem verständlich geschildert und warte gespannt auf Anworten.
Liebe Grüße
PaP