【发布时间】:2011-05-18 21:08:56
【问题描述】:
我正在使用 Java 来实现一个多线程 TCP 服务器-客户端应用程序。但是现在我遇到了一个奇怪的问题:当我关闭服务器套接字时,接收器仍然可以连续接收到最后发送的数据包。由于套接字读取的细节是内核关注的问题,我无法弄清楚原因。有人可以给出一些指导吗? 提前致谢! 编辑: 涉及的代码很简单:
public void run() {
while(runFlag) {
//in = socket.getSocketInputStream();
//byte[] buffer = new byte[bufferSize];
try {
in.read(buffer);
//process the buffer;
}catch(IOException e) {
//
}
}
}
当关闭服务器套接字时,这个读操作会连续接收数据包(每次进入while循环)。
【问题讨论】:
标签: java sockets networking io