Я использую 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).