//: c15:JabberServer.java // From 'Thinking in Java, 2nd ed.' by Bruce Eckel // www.BruceEckel.com. See copyright notice in CopyRight.txt. // Very simple server that just // echoes whatever the client sends. // // import java.io.*; import java.net.*; import javax.swing.*; import java.awt.event.*; import java.awt.*; import java.util.*; import com.bruceeckel.swing.*; import com.bruceeckel.util.*; public class JabberServer extends JApplet { JTextArea Xout = new JTextArea(20, 50); ServerSocket s; Socket socket; int PORT = 8080; public void init(){ Container cp = getContentPane(); cp.setLayout(new FlowLayout()); cp.add(new JLabel("JabberServer!")); cp.add(new JScrollPane(Xout)); try { try{ s = new ServerSocket(PORT); } catch(IOException ex1) {} Xout.append("Started: " + s); // Blocks until a connection occurs: try { socket = s.accept(); } catch(IOException ex1) {} try { Xout.append( "Connection accepted: "+ socket); BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream())); // Output is automatically flushed // by PrintWriter: PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter( socket.getOutputStream())),true); while (true) { String str = in.readLine(); if (str.equals("END")) break; Xout.append("Echoing: " + str); out.println(str); } // Always close the two sockets... } catch(IOException ex) {} finally { Xout.append("closing..."); //socket.close(); } } finally { // s.close(); } } public static void main(String[] args) { Console.run(new JabberServer(), 600, 400); } } ///:~