import java.net.*;
import java.io.*;
import java.nio.ByteBuffer;
import java.nio.channels.*;
public class NewIOHelloServer {
public final static int PORT = 2345;
public static void main(String[] args) throws IOException {
ServerSocketChannel serverChannel = ServerSocketChannel.open();
SocketAddress port = new InetSocketAddress(PORT);
serverChannel.socket().bind(port);
while (true) {
try {
SocketChannel clientChannel = serverChannel.accept();
String response = "Hello "
+ clientChannel.socket().getInetAddress() + " on port "
+ clientChannel.socket().getPort() + "\r\n";
response += "This is " + serverChannel.socket() + " on port "
+ serverChannel.socket().getLocalPort() + "\r\n";
byte[] data = response.getBytes("UTF-8");
ByteBuffer buffer = ByteBuffer.wrap(data);
while (buffer.hasRemaining()) clientChannel.write(buffer);
clientChannel.close();
}
catch (IOException ex) {
// This is an error on one connection. Maybe the client crashed.
// Maybe it broke the connection prematurely. Whatever happened,
// it's not worth shutting down the server for.
}
} // end while
} // end main
} // end NewIOHelloServer
|