This thread
Socket.isConnected
如果已成功连接,则返回true。
从上面的线程:
当你使用
Socket()
你似乎忽略了,
Socket.isConnected()
告诉你
Socket.connect()
已调用
不管怎样。同样适用于
isClosed()
close()
混淆这些方法是由于混淆了
插座
,在应用程序的控制下
整体的
连接
isConnected()
和
告诉我你对插座做了什么。
连接。
医生说:
如果套接字成功连接到服务器,则返回true
如果套接字连接到服务器,则返回true
".
可以通过查看套接字的源来确认该行为:
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: false
isConnected: true isBound: true isClosed: false
isConnected: true isBound: true isClosed: true