Можете ли вы отправить файл большего размера, чем SendBufferSize, через TcpClient? - PullRequest
3 голосов
/ 23 июня 2010

Я экспериментирую с Tcp-соединениями в .NET и хотел бы отправить некоторые данные, которые больше, чем протокол SendBufferSize объекта TcpClient. Можно ли отправить данные, просто записав их в сетевой поток, или мне нужно разрезать их на кусочки и отправить их, а на другом конце создать заново?

Ответы [ 2 ]

4 голосов
/ 23 июня 2010

С MSDN :

Если сетевой буфер меньше, чем объем данных, который вы предоставляете для метода записи, для каждого вызова, выполняемого вами для метода записи, будет выполняться несколько операций сетевой отправки.

Вам нужно всего лишь вызвать Write один раз, TcpClient будет обрабатывать его разбиение на несколько сетевых операций.

1 голос
/ 23 июня 2010

Если сетевой буфер меньше, чем объем данных, который вы предоставляете методу записи, для каждого вызова, который вы делаете методу записи, будет выполняться несколько операций сетевой отправки.Вы можете добиться большей пропускной способности, гарантируя, что размер сетевого буфера не меньше размера буфера приложения.

из .NET Framework Библиотека классов - свойство TcpClient.SendBufferSize

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...