誰かが私に、シリアライゼーションはソケットを介して物事を送信する最善の方法ではなかったと言いましたが、彼らは一度本でそれを読んだと言っていました。シリアル化が最善の方法であるか、より良い方法があります。また、これがゲームのためのものであれば、それは大きな違いになります。ほとんどの人がシリアライゼーションを使用しているように見えますが、どのようなものがあるかを確認するだけです。シリアル化はソケット経由でデータを送信するのに最適ですか?
答えて
基本的にシリアル化するとは、ある種のストレージに適した状態に変換することを意味します。ネットワークを介して送信されるデータは、メモリから取り出されるか、またはHDから取り出され、送信されるための何らかのフォーマットにされなければならない。それはすべて直列化されています。
XMlやJSONにシリアル化されている人は、非常に特定の種類のシリアライゼーションですが、必要に応じてより良いものと悪いものを用意できます。
私はあなたの質問に遭遇し、さまざまなトピックについて自分自身を教育する永遠の探求の中で、私はいくつかの読書/研究を行うことに決めました。私はあなたがこれらの事柄に遭遇したかもしれないと確信していますが、Windows Communication Foundation(WCF)についてお読みになりましたか?関連性があるかもしれない記事が1つありますhttp://blogs.msdn.com/b/carlosfigueira/archive/2008/01/13/writing-custom-requests-to-simple-wcf-services.aspx
また、この記事ではProblem with sockets and OutOfMemory errorがソケットベースの通信をどのように行っているかについて話していますが、以前はWCFを考慮していませんでしたが、やや祝福のようです。この記事の一部の人物C# Sending multiple objects over same Socketは、このシナリオでオーバーヘッドが非常に重要な場合はと書かれていますが、それは問題の可能性があります。しかし、私はそれがあなたが達成しようとしているものに依存していると思います。
また、私は熟練者ではないと主張しています。私はできるだけ多くのことを学びたいと思っています。あなたの投稿に関連するトピックからの私の素早い読書は、私をWCFに導いてくれます。このトピックに新しく興味がある人なら、WCFに頼っている方が、自分でプログラミングソケットを使う方が速いかもしれませんが、すでに利用できる基盤があるため、より簡単になると思われます。私はrambledが、私はそれのいずれかのに役立ちます:)
あなたの入力をお寄せいただきありがとうございます。私はWCFについて知っていますが、私と友人がC#とソケットについて話していて、私のプログラムの1つがどのように物事を送っているのかを知りたいと思っていました。彼がシリアライゼーションを使ったのを見たとき、彼はそれを一番良い方法ではなく一度読んだと言ったが、私はそれをする別の方法を聞いたことがないので、なぜ私は尋ねたか – Shredder2500
ねえ、ありがとう。申し訳ありませんが、私の反応があなたが探していたものではない場合。私は確かに問題の専門家ではないが、それについてもっと知りたいので、私はより多くの読書をしてきた。私は、それがベストプラクティスであるとは言えないが、役に立つかもしれないいくつかのリンクを見つけた:http://stackoverflow.com/questions/284885/multi-client-async-sockets-in-c-best-practices (ソケット対WCF)http://stackoverflow.com/questions/1040278/sockets-vs-wcf。 – SMT
あなたのリンクのためにありがとうございました。もしあなたがC#に関するより多くのことを話したいのであれば、私たちはもっと知り合うことができます。私はスカイプを持っていますので、永遠のサイズのコメントはありません。 – Shredder2500
を.NETで願っていた場合
は申し訳ありませんが、シリアライズはそうオブジェクトを処理するためのインタフェースはとても簡単で、プログラミングフレームワークによって処理されます。
複雑なオブジェクトをホストAからホストBまで同一に保つ必要がある場合は、シリアル化が便利です。それ以外の場合は、このオブジェクトの1つまたは2つのプロパティをホストBが受け取る必要があり、さらにそれをシリアル化する必要がある場合は、より簡単なオブジェクトにキャストし、新しいクラスを作成する必要があります。
一方、あなたのオブジェクトがフレームワークのシリアル化メソッドとクラスによって変更されないと考えれば、あなた自身のソケットからソケットへの関数を書く必要はないかもしれません。私の意見では、帯域幅を節約する必要がある場合は、独自のソケットツーソケットアプローチを使用する方法です。セキュリティを選択する場合は、シリアル化が必要です。
- 1. .netソケット経由でXMLシリアル化オブジェクトを送信
- 2. シリアル化された配列経由でデータを送信
- 3. ソケット経由でファイルを送信する
- 4. ZabbixにTCPIPソケット経由でデータを送信する
- 5. AndroidでBluetooth経由でデータを送信する最大パケットサイズは?
- 6. cソケット経由で画像を送信
- 7. ソケット経由でビデオフレームを送信
- 8. TCPソケット経由でバイト[]を送受信
- 9. ソケット経由でwavファイルを送信
- 10. ネットワークソケット経由で送信するPythonのscandir.DirEntryをシリアル化する方法は?
- 11. ICMPパケットをソケット経由で送信するには?
- 12. OPENCVをMPI経由で送信する最適な方法
- 13. バイナリシリアル化/逆シリアル化を使用してTCP経由でファイルを送信する
- 14. シリアルポート経由でデータを送信する
- 15. データをAJAX経由で送信する
- 16. SOAP経由で送信されたオブジェクトのシリアル化
- 17. 3G経由のゲームセンター(GameKit)経由でデータを送受信する
- 18. websocket経由でKemalで適切なユーザーにデータを送信
- 19. シリアル経由でC#から文字列を送信する
- 20. ソケット経由のObjective-CからJavaへのデータの送信
- 21. バイナリデータをPythonでソケット経由で送信する
- 22. pythonでソケット経由で出力を送受信する
- 23. CでTCPソケット経由でビデオを送信する最も良い方法
- 24. .NETのソケット経由でプレーンテキストを送信する
- 25. エクスプレスルータ内のソケット経由でメッセージを送信する方法
- 26. Javaのソケット経由で文字列を送信する
- 27. telnetとソケット経由でxmlを送信する際の問題
- 28. ソケット経由の配列の送受信
- 29. GET経由でサーバーにデータを送信
- 30. PHPはTCPソケット経由でファイルを送信します
私が通常使っているのは、BinaryFormatterはソケット以外の構造体を送信するのに最適なものですか?スピードを探しています。 – Shredder2500
あなたの唯一の目標が伝達の速度であれば、そうです。あなたがやっているようにバイナリがベストになるでしょう。 – Jordan
ありがとう – Shredder2500