zoukankan      html  css  js  c++  java
  • java Socket的怪异之处

    怪异之一:
    connect(SocketAddress endpoint):这个方法,尝试连接server端,如果连接不上,就抛出IOException异常。如果连接成功了,就继续执行下一步的代码。

    怪异之二:
    boolean isConnected()  :这个方法的结果仅仅代表这个socket曾经成功连接到了server,但并不表示现在这个时刻它和server仍保持连接状态。
    有心的人会发现,即使你已经切断了server和socket之间的连接(比如server down掉了或网络中断了),但是这个函数执行的结果仍旧是true。所以,我认为这个方法并不像我们想象中的那么“管用”。

    怪异之三:
    考虑这样一种情况:
    1.socket和server socket已经建立了连接
    2.但是由于网络原因,这个时候连接中断了。大多数系统都会有一个断线重连的功能。
    但是当你调试时,你可能会发现:网络恢复正常后,用这个socket重新连接serverSocket,却怎么也连不上。
    在这里我的做法是:
    socket=null;
    //然后新建socket,而不是用原来的那个socket
    socket = new Socket();
    //接下来,用这个socket再去连接serverSocket,就可以成功连上了。
  • 相关阅读:
    python返回函数与匿名函数
    Session&Cookie
    write RE validation
    hello2 source anaylis
    Filter
    Development descriptor
    web.xml配置详解
    Annotation
    injector
    container
  • 原文地址:https://www.cnblogs.com/smileallen/p/3391488.html
Copyright © 2011-2022 走看看