T
Tahomar
Gast
Hallo,
ich versuche einen einfachen Chat zwischen Client und Server zu basteln und habe dazu auch schon versucht die hier im Forum (und auch anderswo) verfügbaren Infos für mich nutzbar zu machen, jedoch ohne Erfolg. Ich habe drei Programme:
------------------------------------------------------
----------------------------------------
---------------------------------
Mein Ziel ist es, damit ein Chat aufzubauen, aber bei der Ausführung bleibt er bei der ersten Anwort stehen.
Ich hoffe jemand kann mal kurz seine Profi-Augen über mein simples Proggie fliegen lassen und mir irgendwie helfen, das wäre echt Klasse, vielen Dank!
Gruß
ich versuche einen einfachen Chat zwischen Client und Server zu basteln und habe dazu auch schon versucht die hier im Forum (und auch anderswo) verfügbaren Infos für mich nutzbar zu machen, jedoch ohne Erfolg. Ich habe drei Programme:
Code:
//Server.java
import java.net.*;
import java.io.*;
public class Server
{
public static void main(String args[])
{
int port=1234;
System.out.println("Der Server wurde gestartet und wartet auf einen Client am Port: "+port+"\nBeenden mit STRG+C\n");
try
{
//Öffnen einer Verbindung und horchen am Port,
//ob sich ein Client versucht zu verbinden
ServerSocket horchposten=new ServerSocket(port);
Socket client;
while(true)
{
client=horchposten.accept();
// kommunikation an einen nebenläufigen Thread abgeben
ServerThread t = new ServerThread(client);
t.start();
// und wieder auf neue Verbindungen warten
}
}
catch(Exception ex)
{
System.err.println("Es ist ein Kommunikationsfehler aufgetreten. Das System meldet:\n"+ex+"\n");
ex.printStackTrace();
System.exit(1);
}
}
}
------------------------------------------------------
Code:
//ServerThread.java
import java.net.*;
import java.io.*;
public class ServerThread extends Thread {
private Socket client;
public ServerThread(Socket client) {
this.client = client;
}
public void run()
{
try
{
InputStream eingehend = client.getInputStream();
BufferedReader SocketRein=new BufferedReader (new InputStreamReader(eingehend));
String NachrichtRein=SocketRein.readLine();
System.out.println("Client sagt: "+NachrichtRein+"\n");
System.out.println("Was möchten sie dem Mitarbeiter sagen?\n");
BufferedReader SocketEingabe=new BufferedReader(new InputStreamReader(System.in));
String NachrichtRaus=SocketEingabe.readLine();
OutputStream ausgehend=client.getOutputStream();
PrintWriter SocketRaus=new PrintWriter (ausgehend,true);
SocketRaus.println(NachrichtRaus);
System.out.println("Der Server sendet folgende Nachricht zum Mitarbeiter: \n"+NachrichtRaus);
SocketRaus.println();
SocketRaus.flush();
SocketEingabe.close();
SocketRaus.close();
client.close();
}
catch(Exception ex)
{
System.err.println("Es ist ein Kommunikationsfehler aufgetreten. Das System meldet:\n"+ex+"\n");
ex.printStackTrace();
System.exit(1);
}
}
}
----------------------------------------
Code:
// AppletClient.java
import java.awt.*;
import java.applet.*;
import java.net.*;
import java.io.*;
public class AppletClient extends Applet
{
TextArea textArea=new TextArea(6,60);
public void init()
{
// Set arguments
String host="localhost";
int port=1234;
// GUI layout
setLayout(new BorderLayout());
add(textArea);
try
{
Socket server=null;
while(true)
{
try
{
server=new Socket(host,port);
}
catch(UnknownHostException ex)
{
System.err.println("Cannot find Host"+host);
System.exit(1);
}
// Send some data over socket
OutputStream out = server.getOutputStream();
PrintWriter outputSocket= new PrintWriter(out,true);
outputSocket.println("Hi Server, how are you?");
textArea.append("Client sends the question\"Hi Server, how are you?\" to the Server.\n");
// Readtheansweroversocket
InputStream in = server.getInputStream();
BufferedReader inputSocket= new BufferedReader(new InputStreamReader(in));
String response= inputSocket.readLine();
textArea.append("Server says: "+response+"\n");
outputSocket.println();
outputSocket.flush();
inputSocket.close();
outputSocket.close();
}
}
catch(Exception ex)
{
System.err.println("Error in communication:");
ex.printStackTrace();
System.exit(1);
}
}
}
---------------------------------
Mein Ziel ist es, damit ein Chat aufzubauen, aber bei der Ausführung bleibt er bei der ersten Anwort stehen.
Ich hoffe jemand kann mal kurz seine Profi-Augen über mein simples Proggie fliegen lassen und mir irgendwie helfen, das wäre echt Klasse, vielen Dank!
Gruß