Почему telnet не отображает первый введенный мной символ?(код ниже)
Я принимаю подключение и настройку входных / выходных потоков.Я посылаю 'a', и in.read () принимает его, отправляет в устройство записи (дата), а затем клиент telnet out.write должен записать чтение / вывод aA
inputtream на терминале telnet, например,
a / aA
b / bB
0/00
Проблема: клиент получает результат, но никогда не повторяет запрос по первому ключу после открытия соединения.
public class InToOut_BlockingServer {
public static void main(String[] args) throws IOException {
/*
* The actual work of the server socket is performed by an instance
* of the {@code SocketImpl} class.
*/
// Open a port to accept connections on 8080
ServerSocket srvrSocket = new ServerSocket(8080);
while (true) {
// Wait for the socket, Blocks until someone connects Todo
Socket socket = srvrSocket.accept(); // never null
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
// Read
int data;
while((data=in.read())!=-1 ){
out.write(DataUtil.reorder(data));
}
// CLOSE
out.close();
in.close();
socket.close();
}
}
}
class DataUtil{
public static int reorder(int data){
// IF data is letter, return bit-or data,001000002 (space)
// ELSE, return data
return Character.isLetter(data) ? data ^ ' ' : data;
}