簡體   English   中英

java.net.InetSocketAddress和java.net.SocketAddress支持IPv6?

[英]java.net.InetSocketAddress and java.net.SocketAddress Support IPv6?

java.net.InetSocketAddress和java.net.SocketAddress是否支持IPv6?

因為我研究並嘗試它的兩個類不能讓我查看ipv6連接它只能查看ipv4連接任何有嘗試並且能夠編輯代碼的人嗎?

對你的問題的部分答案,即使它可能來得太晚,不能立即使用=)。

我有以下幾行代碼嘗試連接到兩個不同的IP地址:

// Defined port must be 13; that is NIST's default listening port.
SocketAddress socketAddress = new InetSocketAddress(currentIpAddress, 13);
socket = new Socket();
socket.connect(socketAddress, nistServerTimeoutInMilliseconds);

第一個地址工作正常:'206.246.122.250'

第二個地址在第三行拋出'java.net.SocketException:Protocol family unavailable'。 該地址是'2610:20:6F15:15 :: 27'。

我首先想到的問題是Java 1.7中的InetSocketAddress不支持IPv6,但我發現實際上有兩個類繼承自Java中的InetAddress類:Inet4Address和Inet6Address

http://docs.oracle.com/javase/6/docs/api/java/net/Inet4Address.html http://docs.oracle.com/javase/7/docs/api/java/net/Inet6Address.html

這解釋了為什么我的代碼在嘗試使用IPv6格式構建Inet4Address時失敗了,它也可以解釋您的問題。

希望這有助於=)

PS InetAddress和InetSocketAddress不是同一個類,但通過測試您正在處理的IP地址類型,可能有辦法解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM