栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

插座如何连接和闭合?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

插座如何连接和闭合?

该主题对此主题进行了一些有用的讨论。事实证明,

Socket.isConnected
如果(曾经)成功连接,则返回true。

从上面的线程:

使用

Socket()
似乎已被忽略的时,它会
Socket.isConnected()
告诉您是否
Socket.connect()
已被调用。
isClosed()
和和类似
close()

这些方法的混淆是由于将受应用程序控制的 套接字 状态与受协议控制的整个 连接 状态混淆 。

isConnected()
isClosed()
告诉您您对套接字做了什么。除了读取和写入外,没有其他API可用于确定连接状态。

文档说:

如果套接字成功连接到服务器,则返回true

而不是像人们期望的那样“ 如果套接字连接到服务器,则返回true ”。

可以通过查看Socket的来源来确认该行为:

public boolean isConnected() {    // Before 1.3 Sockets were always connected during creation    return connected || oldImpl;}

您还可以运行以下小测试代码段:

Socket s = new Socket();System.out.println("isConnected: " + s.isConnected() +       " isBound: "     + s.isBound() +       " isClosed: "    + s.isClosed());s.connect(new InetSocketAddress("google.com", 80));System.out.println("isConnected: " + s.isConnected() +        " isBound: "    + s.isBound() +        " isClosed: "   + s.isClosed());s.close();System.out.println("isConnected: " + s.isConnected() +        " isBound: "    + s.isBound() +        " isClosed: "   + s.isClosed());

哪些打印:

isConnected: false isBound: false isClosed: falseisConnected: true isBound: true isClosed: falseisConnected: true isBound: true isClosed: true

我必须说,文档在这一点上还不清楚,并且方法名有点误导。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/486985.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号