www.pudn.com > jnp-src.rar > MTEchoServer.java
/*
* Java Network Programming, Second Edition
* Merlin Hughes, Michael Shoffner, Derek Hamner
* Manning Publications Company; ISBN 188477749X
*
* http://nitric.com/jnp/
*
* Copyright (c) 1997-1999 Merlin Hughes, Michael Shoffner, Derek Hamner;
* all rights reserved; see license.txt for details.
*/
import java.io.*;
import java.net.*;
public class MTEchoServer extends Thread {
protected Socket socket;
MTEchoServer (Socket socket) {
this.socket = socket;
}
public void run () {
try {
InputStream in = socket.getInputStream ();
OutputStream out = socket.getOutputStream ();
out.write ("Welcome to the multithreaded echo server.\r\n"
.getBytes ("latin1"));
byte[] buffer = new byte[1024];
int read;
while ((read = in.read (buffer)) >= 0)
out.write (buffer, 0, read);
} catch (IOException ex) {
ex.printStackTrace ();
} finally {
try {
socket.close ();
} catch (IOException ignored) {
}
}
}
public static void main (String[] args) throws IOException {
if (args.length != 1)
throw new IllegalArgumentException ("Syntax: MTEchoServer ");
System.out.println ("Starting on port " + args[0]);
ServerSocket server = new ServerSocket (Integer.parseInt (args[0]));
while (true) {
Socket client = server.accept ();
MTEchoServer echo = new MTEchoServer (client);
echo.start ();
}
}
}