Мое клиент-серверное приложение в настоящее время продолжает открывать и закрывать новые подключения каждый раз, когда оно хочет отправлять / получать данные.Я пытаюсь изменить это так, чтобы у него было одно постоянное соединение.
Проблема, с которой я сталкиваюсь, заключается в том, что DataInputStream сокета на сервере продолжает выдавать EOFException, когда я просто хочу, чтобы он блокировался, пока не получит следующий пакет данных.
Я думал о простой записисервер вроде этого ...
while socket is open {
while at socket's DataInputStream's EOF {
wait a second
}
//If we're here, then we have some data
do stuff
}
... но это крайне уродливый и неправильный способ блокировать, пока не будут получены некоторые данные.
Есть ли более чистый способ сказатьсокет, чтобы заблокировать, пока есть некоторые данные для чтения?Я пробовал read () и readFully (), но ни одна из них не работает.