Итак, хотя теперь я понимаю, почему Outputstream, подключенный к сокету, нужно сбрасывать, когда данные должны быть отправлены немедленно, я до сих пор не понимаю, почему мне нужно поставить новую строку в конце строки.
Это работает:
// writer is a PrintWriter
writer.println("Hello World!");
Это не так:
Writer.print("Hello World!");
writer.flush;