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,就可以成功连上了。
  • 相关阅读:
    2. Add Two Numbers
    1. Two Sum
    leetcode 213. 打家劫舍 II JAVA
    leetcode 48. 旋转图像 java
    leetcode 45. 跳跃游戏 II JAVA
    leetcode 42. 接雨水 JAVA
    40. 组合总和 II leetcode JAVA
    24. 两两交换链表中的节点 leetcode
    1002. 查找常用字符 leecode
    leetcode 23. 合并K个排序链表 JAVA
  • 原文地址:https://www.cnblogs.com/smileallen/p/3391488.html
Copyright © 2011-2022 走看看