Java 检查平台是否支持 sctp 否则使用 tcp

Java check platform supports sctp otherwise use tcp

因为netty对SCTP和TCP使用不同的通道初始化,所以我想检查平台是否支持SCTP,如果支持,则使用SCTP,否则使用TCP。但是,我在 JDK8 或 netty4 中都找不到任何方法来检查它。

如果 sctp 可用,应该可以毫无例外地调用 com.sun.nio.sctp.SctpServerChannel,但我无法确认这一点,因为我的所有设备都支持 sctp。

Openjdk SCTP guide

To ensure that you have a correctly configured machine and JDK, try compiling and running the following application:

public class TestSCTP
{
    public static void main(String[] args) throws Exception {
        com.sun.nio.sctp.SctpChannel sc = com.sun.nio.sctp.SctpChannel.open();
    }
}

$ jdk1.7.0/bin/javac TestSCTP.java
$ jdk1.7.0/bin/java TestSCTP

If it compiles and runs without any errors, then congratulations you have a correctly configured machine and JDK. You can now start writing applications that use the SCTP API.