Я хочу написать простой веб-прокси для упражнений. Вот код, который у меня есть:
def g = new Proxy()
g.serverPort = 9000
println "starting"
g.eachClient { Socket client ->
println "got a client"
try {
client.withStreams { input,output ->
String text = input.text
println "received $text from client"
client.close()
}
} catch(IOException io) {
println "IO error. Probably client disconnected"
//io.printStackTrace()
}
}
Дело в том, строка:
String text = input.text
потребляет все доступные данные в InputStream Сокета. Если клиент не закрывает соединение, этот метод просто подождет, пока он не сможет прочитать символ конца файла (если я правильно помню). Что мне нужно сделать, чтобы это не происходило и чтобы клиентская строка была доступна как можно скорее?