Date: Tue, 28 May 2013 15:30:35 +0200 From: "Ronald Klop" <ronald-freebsd8@klop.yi.org> To: freebsd-java@freebsd.org Subject: Re: java && IPv6 Message-ID: <op.wxsqg9kj8527sy@ronaldradial.versatec.local> In-Reply-To: <20130528120123.GA1687@tiny.Sisis.de> References: <20130528120123.GA1687@tiny.Sisis.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 28 May 2013 14:01:24 +0200, Matthias Apitz <guru@unixarea.de> wrote: > > Hello, > > I'm a C-programmer and want to do something in Java now; > > I want to write an IPv6 server in java which should do what my C written > IPv6-server does: > > - create the two sockets for IPv4 and IPv6 > - bind, listen > - monitor the sockets with "poll" and accept the connection on the > socket which is ready to be accepted; > > see the C-source at http://www.unixarea.de/ipv6-server.c.txt > it can be compiled and run and creates LISTEN on the two sockets, see > netstat output: > > ~/c]$ gcc ipv6-server.c > ~/c]$ ./a.out > family: 28 (PF_INET6) sin6_addr: [::] > LISTEN: IPv6 ... > family: 2 (PF_INET) sin_addr: [0.0.0.0] > LISTEN: IPv4 ... > > ~/c]$ netstat -an | fgrep 39999 > tcp4 0 0 *.39999 *.* LISTEN > tcp6 0 0 *.39999 *.* LISTEN > > when I do something similar on the same FreeBSD host in Java, I can't > manage to create the IPv6 LISTEN on the IP addr "::"; IPv4 works fine, > when I use as addr 'null'; > the source is here: http://www.unixarea.de/ipv6.java.txt > > ~/java]$ javac ipv6.java > ~/java]$ java -version > java version "1.6.0_03-p4" > Java(TM) SE Runtime Environment (build > 1.6.0_03-p4-guru_22_apr_2011_14_10-b00) > Java HotSpot(TM) Client VM (build > 1.6.0_03-p4-guru_22_apr_2011_14_10-b00, mixed mode) > ~/java]$ java -Djava.net.preferIPv6Stack=true ipv6 > java.net.SocketException: Protocol family unavailable > at java.net.PlainSocketImpl.socketBind(Native Method) > at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359) > at java.net.ServerSocket.bind(ServerSocket.java:319) > at java.net.ServerSocket.<init>(ServerSocket.java:185) > at ipv6$1.run(ipv6.java:18) > at java.lang.Thread.run(Thread.java:619) > > Any Java guru out here? Any comments on my Java class? Thanks > > matthias > Your Java is really really really old. ;-) I guess it was this one: http://www.freshports.org/java/jdk16/ It is even removed from the ports tree already. It is advised to use the more recent openjdk6 or openjdk7 ports. Ronald.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?op.wxsqg9kj8527sy>