多くのパケットを送信するネットワークアプリケーションを開発しています。現在のところ、私のシリアル化の方法は、オブジェクトのリストを取得し、それらをパイプ文字 '|'で区切られた文字列に変換するハックです。それをネットワークストリームにフラッシュします(またはUDP経由で送信します)。C# - ネットワーク上でパケットをシリアライズ
パケットサイズ(ありませんので、巨大なXMLシリアル化)を最小限に抑えながら、私はC#でこれにクリーンな解決策を探しています。
BinaryFormatter is SLOW
と私の経験。私はまた、パケットを圧縮してbase64
文字列にエンコードし、クライアント側でそれらをデコードすることも検討しています。私はこれがアプリケーションのパフォーマンスにどのように影響するか見てみたいと思っています。
はまた、別の簡単な質問:
私のセットアップは、2つのソケット(1 TCP and UDP
)を作成し、クライアントは、これらの二つのソケットに個別に接続されています。データは、必要に応じて(重要なものについてはTCP、重要でないものについてはUDP)、どちらかに基づいて削除されます。これは初めてTCP/UDPを使用していて不思議に思っていました
もっと統一された方法があれば、そうは思われません。
素晴らしいサポートのためにいつもありがとうございます。
BinaryReader/Writerを避ける理由は、BinaryFormatterの遅さのためです。このVS BFormatterのスピードに関するアイデアは? –