【发布时间】:2010-10-13 00:10:26
【问题描述】:
我在这个post 中发现了同样的问题,但我认为它没有解决。
我会很简短,这是我的代码:
try {
Socket pacConx = new Socket(ip, Integer.parseInt(port));
DataInputStream dataIn = new DataInputStream(pacConx.getInputStream());
DataOutputStream dataOut = new DataOutputStream(pacConx.getOutputStream());
while(){...}
} catch (IOException e) {
logger.fatal("error", e);
}finally{
if (dataIn != null) {
dataIn.close();
}
if (dataOut != null) {
dataOut.close();
}
if (pacConx != null) {
pacConx.close();
}
}
首先,我使用上面的代码连接到服务器,它成功了。 但是,当我尝试在一段时间后重新连接到同一服务器和端口时,我无法重新连接。 显然,第一个套接字在服务器端仍然“活跃”。
是解决我问题的方法吗?
有没有办法可以关闭另一个“活动”套接字?
【问题讨论】:
-
你确定while循环结束了吗?
-
服务器端在监听什么?您可以访问代码吗?
-
是的,我可以访问代码。我正在监听一个服务器,它将为我提供股票数据。
-
是的,while 循环结束。即使它没有结束并且我强制它结束,这也不会关闭另一个套接字。
-
什么问题?什么例外?什么错误信息?要具体。