Наиболее вероятная проблема в этой области связана с отсутствием сброса вывода в другом процессе, и это может быть проблемой в обоих способах. На стороне Java вы должны вызывать метод flush()
на устройстве записи после того, как вы написали полное сообщение (часто целую строку). На стороне Tcl вы используете flush stdout
после написания строки или настраиваете стандартный выходной канал так, чтобы автоматически flu sh после записи каждой строки:
fconfigure stdout -buffering line
С двоичным протоколом вы ' Вместо этого полностью отключите буферизацию (none
вместо line
) и просто убедитесь, что сообщения полностью собраны перед каждой записью.