Преобразование двоичного объекта сначала в строку, а затем преобразование его в UTF-8 не очень хорошая идея ... В преобразованиях может произойти много плохих вещей.(И есть также ошибка в sendMessage
.)
Почему бы просто не сделать:
public Boolean sendMessage(byte[] msg)
{
stream.Write(msg, 0, msg.Length);
stream.Flush();
}
Если вам действительно нужен последний "\ n", то добавьте перед Flush:
stream.WriteByte((byte)'\n');
Пока мы обсуждаем UTF-8, почему вы предполагаете, что имя файла будет содержать только символы ASCII ??Измените этот код на:
byte[] fileNameByte = Encoding.UTF8.GetBytes(fileName);