java && IPv6
Ronald Klop
ronald-freebsd8 at klop.yi.org
Tue May 28 13:30:45 UTC 2013
On Tue, 28 May 2013 14:01:24 +0200, Matthias Apitz <guru at 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.
More information about the freebsd-java
mailing list