G
Gast melde mich später an
Gast
Hallo!
Ich habe ein Chat-proggi geschrieben, welches ich nach einem tutorial gemacht habe! Doch leider will das nicht so ganz!
Hier mal der Code:
DER SERVER
DER CLIENT
THX im Vorraus!
Ich habe ein Chat-proggi geschrieben, welches ich nach einem tutorial gemacht habe! Doch leider will das nicht so ganz!
Hier mal der Code:
Code:
import java.net.*;
import java.io.*;
import java.awt.*;
import java.applet.*;
public class Chatman extends Applet implements Runnable
{
public static final int PORT = 8765;
Socket socket;
DataInputStream in;
PrintStream out;
TextField inputfield;
TextArea outputarea;
Thread thread;
public void init()
{
inputfield = new TextField();
outputarea = new TextArea();
outputarea.setFont( new Font("Dialog", Font.PLAIN, 12));
outputarea.setEditable(false);
this.setLayout(new BorderLayout());
this.add("South", inputfield);
this.add("Center", outputarea);
this.setBackground(Color.lightGray);
this.setForeground(Color.black);
inputfield.setBackground(Color.white);
outputarea.setBackground(Color.white);
}
public void start()
{
try
{
socket = new Socket(this.getCodeBase().getHost(), PORT);
in = new DataInputStream(socket.getInputStream());
out = new PrintStream(socket.getOutputStream());
} catch (IOException e)
{
this.showStatus(e.toString());
say("Verbindung zum Server fehlgeschlagen!");
//System.exit(0);
}
say("Verbindung zum Server aufgenommen...");
if (thread == null)
{
thread = new Thread(this);
thread.setPriority(Thread.MIN_PRIORITY);
thread.start();
}
}
public void stop()
{
try
{
socket.close();
} catch (IOException e)
{
this.showStatus(e.toString());
}
if ((thread !=null) && thread.isAlive())
{
thread.stop();
thread = null;
}
}
public void run()
{
String line;
try
{
while(true)
{
line = in.readLine();
if(line!=null)
{
outputarea.appendText(line+'\n' );
}
}
}
catch (IOException e)
{
say("Verbindung zum Server abgebrochen");
}
}
public boolean action(Event e, Object what)
{
if (e.target==inputfield)
{
String inp=(String)e.arg;
out.println(inp);
inputfield.setText("");
return true;
}
return false;
}
public void say(String msg)
{
outputarea.appendText("*** "+msg+" ***\n");
}
}
DER SERVER
Code:
import java.net.*;
import java.io.*;
import java.util.*;
public class chatmanserver implements Runnable
{
public static final int PORT = 8765;
protected ServerSocket listen;
protected Vector connections;
Thread connect;
public chatmanserver()
{
try
{
listen = new ServerSocket(PORT);
} catch (IOException e)
{
System.err.println("Fehler beim Erzeugen der Sockets:"+e);
System.exit(1);
}
connections = new Vector();
connect = new Thread(this);
connect.start();
}
public void run()
{
try
{
while(true)
{
Socket client=listen.accept();
chatmanconnection c = new chatmanconnection(this, client);
connections.addElement(c);
}
} catch (IOException e)
{
System.err.println("Fehler beim Warten auf Verbindungen:"+e);
System.exit(1);
}
}
public static void main(String[] args)
{
new chatmanserver();
}
public void broadcast(String msg)
{
int i;
chatmanconnection you;
for (i=0; i<connections.size(); i++)
{
you = (chatmanconnection) connections.elementAt(i);
you.out.println(msg);
}
}
}
DER CLIENT
Code:
import java.net.*;
import java.io.*;
class chatmanconnection extends Thread
{
protected Socket client;
protected DataInputStream in;
protected PrintStream out;
protected chatmanserver server;
public chatmanconnection(chatmanserver server, Socket client)
{
this.server=server;
this.client=client;
try
{
in = new DataInputStream(client.getInputStream());
out = new PrintStream(client.getOutputStream());
} catch (IOException e)
{
try { client.close(); } catch (IOException e2) {} ;
System.err.println("Fehler beim Erzeugen der Streams: " + e);
return;
}
this.start();
}
public void run()
{
String line;
try
{
while(true)
{
line=in.readLine();
if(line!=null)
server.broadcast(line);
}
} catch (IOException e)
{
System.out.println("Fehler:" + e);
}
}
}
THX im Vorraus!