From owner-freebsd-java@FreeBSD.ORG Tue May 28 12:01:37 2013 Return-Path: Delivered-To: freebsd-java@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 91106D3F for ; Tue, 28 May 2013 12:01:37 +0000 (UTC) (envelope-from guru@unixarea.de) Received: from ms16-1.1blu.de (ms16-1.1blu.de [89.202.0.34]) by mx1.freebsd.org (Postfix) with ESMTP id 320412C8 for ; Tue, 28 May 2013 12:01:37 +0000 (UTC) Received: from [82.113.98.221] (helo=tiny.Sisis.de) by ms16-1.1blu.de with esmtpsa (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1UhIam-00083J-A2; Tue, 28 May 2013 14:01:28 +0200 Received: from tiny.Sisis.de (localhost [127.0.0.1]) by tiny.Sisis.de (8.14.5/8.14.3) with ESMTP id r4SC1PR8001931; Tue, 28 May 2013 14:01:26 +0200 (CEST) (envelope-from guru@unixarea.de) Received: (from guru@localhost) by tiny.Sisis.de (8.14.5/8.14.3/Submit) id r4SC1Ov0001930; Tue, 28 May 2013 14:01:24 +0200 (CEST) (envelope-from guru@unixarea.de) X-Authentication-Warning: tiny.Sisis.de: guru set sender to guru@unixarea.de using -f Date: Tue, 28 May 2013 14:01:24 +0200 From: Matthias Apitz To: freebsd-java@freebsd.org Subject: java && IPv6 Message-ID: <20130528120123.GA1687@tiny.Sisis.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Operating-System: FreeBSD 10.0-CURRENT r235646 (i386) User-Agent: Mutt/1.5.21 (2010-09-15) X-Con-Id: 51246 X-Con-U: 0-guru X-Originating-IP: 82.113.98.221 X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Matthias Apitz List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 28 May 2013 12:01:37 -0000 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.(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 -- Sent from my FreeBSD netbook Matthias Apitz | - No system with backdoors like Apple/Android E-mail: guru@unixarea.de | - Never being an iSlave WWW: http://www.unixarea.de/ | - No proprietary attachments, no HTML/RTF in E-mail phone: +49-170-4527211 | - Respect for open standards