immediately. Subsequent selection operations will behave normally. Invoking
*/ public class SelectSockets{ public static int PORT_NUMBER = 1234; public static void main (String [] argv) throws Exception { new SelectSockets().go (argv); } public void go (String [] argv) throws Exception { int port = PORT_NUMBER; if (argv.length > 0) { // Override default listen port port = Integer.parseInt (argv [0]); } System.out.println (”Listening on port ” + port); // Allocate an unbound server socket channel ServerSocketChannel serverChannel = ServerSocketChannel.open(); // Get the associated ServerSocket to bind it with ServerSocket serverSocket = serverChannel.socket(); // Create a new Selector for use below Selector selector = Selector.open(); // Set the port the server channel will listen to serverSocket.bind (new InetSocketAddress (port)); // Set nonblocking mode for the listening socket serverChannel.configureBlocking (false); // Register the ServerSocketChannel with the Selector serverChannel.register (selector, SelectionKey.OP_ACCEPT); while (true) { // This may block for a long time. Upon returning, the // selected set contains keys of the ready channels. int n = selector.select(); if (n == 0) { continue; // nothing to do } // Get an iterator over the set of selected keys Iterator it = selector.selectedKeys().iterator(); // Look at each key in the selected set while (it.hasNext()) { SelectionKey key = (SelectionKey) it.next(); // Is a new connection coming in? if (key.isAcceptable()) { ServerSocketChannel server = 148
Note: If you are looking for cheap and inexpensive provider to host and run your tomcat application check Actions tomcat hosting services