代码之家  ›  专栏  ›  技术社区  ›  Alexander Pogrebnyak

是java.net。Socket.setSoTimeout可靠吗?

  •  2
  • Alexander Pogrebnyak  · 技术社区  · 16 年前

    setSoTimeout

    使用启用/禁用SO_TIMEOUT java.net。SocketTimeout异常为 虽然插座仍然被抬起 被解释为无限超时。

    here ).

    setSoTimeout 检查是否有脱逃会话?

    4 回复  |  直到 16 年前
        1
  •  3
  •   jarnbjo    16 年前

        2
  •  2
  •   Stephen C    16 年前

    我不知道 任何 现代平台操作系统平台,其网络堆栈损坏严重,套接字超时不起作用。但如果有人知道一个现实生活中的例子,请将其添加为评论!

        3
  •  1
  •   user207421    13 年前

    该链接是关于SO_RCVTIMEO的。问题是关于Socket.setSoTimeout()的。在我所知道的唯一一个平台中,前者不起作用(某些版本的Solaris),后者是使用select()来伪造的,select()确实有效。该方法的契约要求这样做。除非有人真的想出了一个不起作用的平台,否则你不必担心这一点。我16年来从未见过这样的平台。

        4
  •  0
  •   Carl Smotricz    16 年前

    查看Java 6 nio中的连接类,它们现在包含套接字并执行非阻塞操作,因此如果你想取消操作,可以取消。

    Apache htmlclient core(?)现在能够使用nio套接字,所以他们似乎已经实现了这一概念。不过,我只知道这些。