私はクライアントとサーバーの間でデータを送信するためにCsharp tcpソケットを使用しています。 私はそれを見て、または私が知っているように、tcpはストリームプロトコルであり、十分な量でなければデータをプッシュ(送信)しません。TCPストリームに強制的にバッファの内容を送信する
たとえば、何かデータを送信したいと思っても、その8バイトの長さだけを伝えることができます。私が見ている振る舞いは、私がTCPバッファに達するまで、おそらくそれを背後に押し込まない限り、データを送信しないとどれくらい待っても関係ありません。
私の質問はそうです。 tcp経由で少量のデータを送信したいのであれば、ソケットに強制的に送信するように最後にガベージを追加する必要があります。 (私はこれについて良い気分にならないだろう)、またはストリームのフロントセグメントを強制的に送信する代わりの方法です。
ありがとうございます。私はまだTCPを学んでいるので、無知を言い訳します。
.NETでソケットを使用してデータを送信する方法はいくつかあります。どのコードを使用していますか?つまり、コードの短い部分を表示できますか? – svick
ああ私はTcpClientオブジェクトを使用していて、クライアントとサーバーの両方でNoDelay = trueを設定しても問題は解決しません。 – user826228
私はそれがデータを取得していないことと、NetworkStream.Readを適切に使用していない私には関係がないと考えています。私はAPIのドキュメントをさらに詳しく見ていきます。すべての助けに感謝します。 – user826228