2009-08-27 4 views
3

私はC#を使用してSSLソケットを介してサーバーに接続し、xmlデータを前後に送信しようとしています。すべてのパケットがちょうどお互いの上に壊されている特定のパケットサイズ1000バイトに達するまで、データは送信されないようです。私はそれらを送信するようにsslライブラリにパケットを送信するように強制する方法はありますか?C#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(); 
+0

別の可能性が私に起こりました:あなたのコードのxml変数は、送信したいXMLのチャンクを表しているのでしょうか、それとも全部ですか? –

+0

すべてのこと、xmlは何でもかまいませんが、同じ行動でbuffaloという単語を送信し始めたばかりです – mog

+0

これはこれまで決まったことがありますか? SSL/TLSが非ストリーミングモードを使用しているときに、ブロック暗号にどのようにストリーミングできるか疑問に思っていました。この質問は私の最初の考えを確認するものではありません。 –

答えて

1

私の推測では、それはあなたのデータをチャンクされたあなたのStreamWriterであるということです。 AutoFlush = trueを設定してみてください。

+0

悪い推測ではありませんが、私は同じことを行うだろうフラッシュに続いていると思うでしょう。また、私は運がないと自動フラッシュをオンにしようとしました。アドバイスありがとう – mog

関連する問題