如果PC上的其他应用程序连接到同一远程IP地址,则Java应用程序将无法正常连接。
如果exits abruptly没有关闭套接字通道,也会发生这种情况。可以阻止连接,并且在后续会话期间无法连接。
我可以做些什么来确保无论底层操作系统中的连接状态如何,我的程序都会100%连接?
我正在寻找跨平台解决方案(Windows& Ubuntu)
public void connect() throws CommunicationIOException {
try {
if (isConnected()) {
return;
}
socket = SocketChannel.open();
socket.socket().connect(new InetSocketAddress(getHostname(), getPort()), getConnectionTimeout());
if (!isConnected()) {
throw new CommunicationIOException("Failed to establish the connection");
}
socket.configureBlocking(false);
} catch (final IOException ex) {
throw new CommunicationIOException(
"An error occurred while connecting to " + getHostname() + " on port " + getPort(), ex);
}
}
public boolean isConnected() {
if (socket == null) {
return false;
} else {
return socket.isConnected();
}
}
public void close() throws CommunicationIOException {
if (socket != null) {
try {
socket.close();
} catch (final IOException ex) {
throw new CommunicationIOException(
MessageFormat.format(
"An error occurred while attempting to close the connection to {}:{}",
getHostname(), getPort()), ex);
}
}
}
答案 0 :(得分:0)
如果PC上的其他应用程序连接到同一远程IP地址,则Java应用程序将无法正常连接。
不,它不会,除非服务器编程不正确。
如果在不关闭套接字通道的情况下突然退出,也会发生这种情况。
不,它不能,除非有不正确的程序。
可以阻止连接
不,不能。
并且在后续会话期间无法连接。
不,不是。
我可以做些什么来确保无论底层操作系统中的连接状态如何,我的程序都会100%连接?
这一生中没有任何东西会给你100%的保证。然而,你上面表达的恐惧毫无根据。