diff test/ServerSample.java @ 389:4b535bef903a

23
author one@firefly.cr.ie.u-ryukyu.ac.jp
date Mon, 10 Nov 2008 22:24:21 +0900
parents 4ec3b70f8f09
children
line wrap: on
line diff
--- a/test/ServerSample.java	Mon Nov 10 22:23:02 2008 +0900
+++ b/test/ServerSample.java	Mon Nov 10 22:24:21 2008 +0900
@@ -27,11 +27,13 @@
 		// (非ブロックモードに設定:重要)
 		REPServerSocketChannel<REPCommand> serverSocketChannel = REPServerSocketChannel.<REPCommand>open(pack);
 		serverSocketChannel.configureBlocking(false);
-		// この方法だと、IPv6 (Dual stack) 対応にならない..
-		// このホストの全てのアドレスを取得して、それ全部に対して、socketを開けて、すべてに対して、
-		// select する必要がある。
-		//serverSocketChannel.socket().bind(new InetSocketAddress(5100));
-		serverSocketChannel.socket().bind(new InetSocketAddress("::",5100));
+		serverSocketChannel.socket().setReuseAddress(true);
+		try {
+			serverSocketChannel.socket().bind(new InetSocketAddress("::",5100));
+		} catch (SocketException e) {
+			// some system does not support "::"
+			serverSocketChannel.socket().bind(new InetSocketAddress(5100));
+		}
 
 		// セレクタにサーバソケットチャンネルを登録。サーバへの受付を監視
 		serverSocketChannel.register(selector, SelectionKey.OP_ACCEPT);