C # ssl поток не прекратит буферизацию перед отправкой - PullRequest
4 голосов
/ 27 августа 2009

Я пытаюсь использовать C # для подключения через ssl-сокет к серверу и отправки данных XML туда и обратно. Кажется, что данные не будут отправлены, пока они не достигнут определенного размера пакета 1000 байтов, после чего все пакеты просто разбиваются друг на друга. Есть ли способ заставить библиотеку ssl отправлять пакеты по мере их отправки?

Я использую SslStream и StreamWriter для отправки данных, и я уже пытался уменьшить размер пакета и установить для NoDelay значение true, но безрезультатно. Я что-то пропустил?

sslStream = new SslStream(sslClient.GetStream(), false, new RemoteCertificateValidationCallback(CertificateValidationCallback));
sslStream.AuthenticateAsClient(appSettings.CBPASServer);
showSslInfo(appSettings.CBPASServer, sslStream, true);
streamWriter = new StreamWriter(sslStream);

...

sslStream.Write(xml);
sslStream.Flush();

1 Ответ

1 голос
/ 01 сентября 2009

Я предполагаю, что ваш StreamWriter разбивает ваши данные на части. Попробуйте установить AutoFlush = true.

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