Я не думаю, что в целом можно сказать намного больше, и там В вашем коде нет ничего необычного, что могло бы привести к прерыванию соединения. Однако я хотел бы отметить, что:
Преобразование байтов в целые числа для вызова write не требуется. Он будет продвигаться автоматически.
Было бы лучше (проще, потенциально более эффективно с точки зрения сетевого трафика) использовать write (byte []) вместо write (int) .
Принимающая сторона предполагает, что каждый байт представляет собой полный символ. Это может быть неверно в зависимости от того, как отправляющая сторона сформировала байты для передачи, и
Было бы неплохо начать с отправки количества байтов, чтобы принимающая сторона могла определить, что что-то пошло не так, прежде чем отправитель отправил весь массив байтов.