Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java_Java_net_PlainSocketImpl_socketSetOption_Java_Sockets_Java Native Interface_Java 8_Openjdk - Fatal编程技术网

Java_Java_net_PlainSocketImpl_socketSetOption

Java_Java_net_PlainSocketImpl_socketSetOption,java,sockets,java-native-interface,java-8,openjdk,Java,Sockets,Java Native Interface,Java 8,Openjdk,在open-jdk-8中: 此函数:Java_Java_net_PlainSocketImpl_socketSetOption: /*

在open-jdk-8中:

此函数:Java_Java_net_PlainSocketImpl_socketSetOption:

/*                                                                                                                                                                                            
     * SO_TIMEOUT is a no-op on Solaris/Linux                                                                                                                                                     
     */
    if (cmd == java_net_SocketOptions_SO_TIMEOUT) {
        return;
    }
文件:openjdk7/jdk/src/solaris/native/java/net/PlainSocketImpl.c

这是否意味着,在linux上,SO_超时选项将被忽略


我很抱歉找不到linux的jin。但是solaris的代码似乎也适用于linux。

不,这只是意味着它没有作为套接字选项实现。有些平台不支持它。在那些平台上使用
select()
或friends。

不,这只是意味着它没有作为套接字选项实现。有些平台不支持它。在这些平台上使用
select()
或friends。

solaris文件夹中的源代码也用于Linux

SO\u TIMEOUT
Java\u Java\u net\u PlainSocketImpl\u socketSetOption0
中被忽略。但是调用
AbstractPlainSocketImpl.setOption
时,
timeout
保留为字段:

case SO_TIMEOUT:
    if (val == null || (!(val instanceof Integer)))
            throw new SocketException("Bad parameter for SO_TIMEOUT");
    int tmp = ((Integer) val).intValue();
    if (tmp < 0)
            throw new IllegalArgumentException("timeout < 0");
// Saved for later use
    timeout = tmp;
    break;

solaris文件夹中的源代码也用于Linux

SO\u TIMEOUT
Java\u Java\u net\u PlainSocketImpl\u socketSetOption0
中被忽略。但是调用
AbstractPlainSocketImpl.setOption
时,
timeout
保留为字段:

case SO_TIMEOUT:
    if (val == null || (!(val instanceof Integer)))
            throw new SocketException("Bad parameter for SO_TIMEOUT");
    int tmp = ((Integer) val).intValue();
    if (tmp < 0)
            throw new IllegalArgumentException("timeout < 0");
// Saved for later use
    timeout = tmp;
    break;

代码似乎就是这么做的?你有理由怀疑情况并非如此吗?代码似乎就是这样做的?你有理由怀疑事实并非如此吗?