【问题标题】:Java check platform supports sctp otherwise use tcpJava 校验平台支持 sctp 否则使用 tcp
【发布时间】:2018-09-18 09:11:33
【问题描述】:

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

【问题讨论】:

    标签: java-8 netty sctp


    【解决方案1】:

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

    Openjdk SCTP guide

    为确保您拥有正确配置的机器和 JDK,请尝试编译并运行以下应用程序:

    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
    

    如果它编译和运行没有任何错误,那么恭喜你有一个正确配置的机器和 JDK。您现在可以开始编写使用 SCTP API 的应用程序了。

    【讨论】:

    • 如果从程序中执行此检查,请确保在成功检查后关闭通道,否则您会泄漏 1 个文件描述符
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 2019-03-14
    • 2011-10-01
    • 2016-10-18
    相关资源
    最近更新 更多