Ограничен ли размер буфера Socket.Send? - PullRequest
3 голосов
/ 08 апреля 2011

Есть ли ограничение на размер буфера отправки, я могу отправлять небольшие пакеты -ie: 1000 байт - однако, когда я пытаюсь отправить около 20 КБ, ничего не происходит, удаленный не получит пакет, а удаленный НЕ получит больше данных.

System.Net.Sockets.Socket.Send((byte)buffer);

Ответы [ 3 ]

4 голосов
/ 08 апреля 2011

Send () возвращает Int32, указывающее, сколько байтов было отправлено ... поэтому можно сделать вывод, что верхний предел размера буфера равен Int32.MaxValue.

Что касается причин возникновения проблем с20-байтовый буфер - вы не предоставили достаточно информации, чтобы сделать предположение.

2 голосов
/ 08 апреля 2011

В качестве состояния документов этот метод возвращает количество отправленных байтов.Вы несете ответственность за отправку оставшихся байтов.

1 голос
/ 24 октября 2015

Размер буфера по умолчанию Socket.SendBuffer составляет 8192 в соответствии с MSDN.Вы можете увеличить это при необходимости.

tcpSocket.SendBufferSize = 8192;
...