То ли я упустил что-то, то ли в NetworkStream.Write(byte[] buffer, int offset, int size) или TcpClient охрененный баг.
Это сцуко передавать больше 8760 байт за раз не хочет !
Запускал два экземпляра рсапределенного приложения (на ноуте и домашней PC-шке).
В одном вызывал
ns.Write(data2send, 0, len);
в другом
int bytesRead = ns.Read(data, 0, len);
Допустим data2send содержит 3000 байт, вызываем ns.Write с ноута, он успешно пишет data2send в поток.
После этого на PC-шке TcpClient подхватывает данные из потока. НО ! bytesRead какого то х.. равно не 3000, а 2920 !
То есть, все, что > 2920 обрезалось нафиг.
Попробовал, передавать кол-во байт меньшее 2920 — всё как часы, сколько отправил — столько и принял.
Потом докопался до TcpClient.Client.ReceiveBufferSize, выставил его в 1МБ, однако это тоже не исправило положение, передаваться стало не 2920, а 8760 байт, но ведь не 1МБ как было выставлено.
Может кто в курсе. Это что так и надо что-ли ?