![]() |
![]() ![]() die führende deutsche Java-Seite ![]() ![]() und Hannes Gamperl ![]() |
![]()
|
![]() Einführung
Workshops
Wissen
Ressourcen
K&K Intern
Weitere Angebote
EMail an java@acc.de
|
import java.net.*; import java.io.*; import java.util.*; public class chatserver implements Runnable { public static final int PORT = 8765; protected ServerSocket listen; protected Vector connections; Thread connect; public chatserver() { 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(); connection c = new connection(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 chatserver(); } public void broadcast(String msg) { int i; connection you; for (i=0; i<connections.size(); i++) { you = (connection) connections.elementAt(i); you.out.println(msg); } } } import java.net.*; import java.io.*; class connection extends Thread { protected Socket client; protected DataInputStream in; protected PrintStream out; protected chatserver server; public connection(chatserver 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); } } } import java.net.*; import java.io.*; import java.awt.*; import java.applet.*; public class chatapplet 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(1); } 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"); } }Diesen Quellcode gibt es auch als reine Textdatei. ![]()
| ||||
Nach oben |
© 1998 Christoph Bergmann / ACCESS Internet. Alle Rechte vorbehalten. |