java.net.SocketException:不支持协议

java.net.SocketException:不支持协议,java,sctp,Java,Sctp,我正在尝试创建一个SCTP应用程序。 我编写了一个示例代码来测试安装了libsctpdev的Ubuntu 14.04是否支持SCTP public class TestSctp { public static void main(String[] args){ try { com.sun.nio.sctp.SctpChannel sc = com.sun.nio.sctp.SctpChannel.open(); S

我正在尝试创建一个SCTP应用程序。 我编写了一个示例代码来测试安装了libsctpdev的Ubuntu 14.04是否支持SCTP

    public class TestSctp {

    public static void main(String[] args){
        try {
            com.sun.nio.sctp.SctpChannel sc = com.sun.nio.sctp.SctpChannel.open();
            System.out.println("SCTP supported");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}
这就是我得到的错误:

java.net.SocketException: Protocol not supported
at sun.nio.ch.sctp.SctpNet.socket0(Native Method)
at sun.nio.ch.sctp.SctpNet.socket(SctpNet.java:85)
at sun.nio.ch.sctp.SctpChannelImpl.<init>(SctpChannelImpl.java:138)
at com.sun.nio.sctp.SctpChannel.open(SctpChannel.java:166)
at TestSctp.main(TestSctp.java:7)
java.net.SocketException:不支持协议
位于sun.nio.ch.sctp.SctpNet.socket0(本机方法)
位于sun.nio.ch.sctp.SctpNet.socket(SctpNet.java:85)
位于sun.nio.ch.sctp.SctpChannelImpl。(SctpChannelImpl.java:138)
位于com.sun.nio.sctp.SctpChannel.open(SctpChannel.java:166)
位于TestSctp.main(TestSctp.java:7)
这是我的java版本:

java版本“1.8.0_71”
Java(TM)SE运行时环境(build 1.8.0_71-b15)
Java HotSpot(TM)64位服务器虚拟机(构建25.71-b15,混合模式)


我无法修复此异常。

您是否也安装了lksctp工具?因此您的测试失败。这不意味着它不受欢迎吗?不,不一定。linuxkernel支持SCTP。要在应用程序中使用它,您必须添加lksctp工具,而不仅仅是libsctp-dev.@tej,以测试您的系统是否真的支持sctp打开一个终端并运行
sctp_darn-h0-p2500-l
。从另一个终端,您可以使用
sctp_darn-h0-p2600-h127.0.0.1-p2500-s运行客户端,以验证您的操作系统是否支持sctp(您是否修改了内核?)。@Frank这些命令在我的虚拟机中不起作用。我创建了一个新的ubuntu虚拟机,它开始工作(甚至是示例java代码)。我猜我的内核被修改了。你也安装了lksctp工具吗?所以你的测试失败了。这不意味着它不受欢迎吗?不,不一定。linuxkernel支持SCTP。要在应用程序中使用它,您必须添加lksctp工具,而不仅仅是libsctp-dev.@tej,以测试您的系统是否真的支持sctp打开一个终端并运行
sctp_darn-h0-p2500-l
。从另一个终端,您可以使用
sctp_darn-h0-p2600-h127.0.0.1-p2500-s运行客户端,以验证您的操作系统是否支持sctp(您是否修改了内核?)。@Frank这些命令在我的虚拟机中不起作用。我创建了一个新的ubuntu虚拟机,它开始工作(甚至是示例java代码)。我猜我的内核被修改了。