01: //********* Blocking client ***************************************
02: import java.nio.ByteBuffer;
03: import java.nio.channels.SocketChannel;
04: import java.net.InetSocketAddress;
05: 
06: public class BC { // BlockingClient
07:     public static void main(String[ ] args) throws Exception {
08:         if (args.length < 1) {
09:           System.err.println("Usage: BC <server's IP addr>");
10:           return;
11:         }
12:         // Create a ByteBuffer to receive data.
13:         ByteBuffer buff = ByteBuffer.allocate(buff_size);
14: 
15:         // Open a socket channel and configure it as blocking.
16:         SocketChannel sc = SocketChannel.open();
17:         sc.configureBlocking(true);
18: 
19:         // Attempt to connect: as blocking is on, the call
20:         // blocks until successful or an exception is thrown.
21:         sc.connect(new InetSocketAddress(args[0], port));
22:         sc.read(buff); // also blocks until data are available
23:         sc.close();
24:         System.out.println(new String(buff.array()));
25:     }
26:     private static final int port = 2233;
27:     private static final int buff_size = 512; // in bytes
28: }