Skip site navigation (1)Skip section navigation (2)
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>