2009-09-04 15 views
2

私は、TCPを介してデータを送信するためにどのフォーマットを使用するべきかに関するアドバイスをしたいと思います。現在、私は区切られた文字列で単純なテキストプロトコルを考案しました。 XML、JSON、XMPPなどの既存のものを使うべきだと思っていますか?TCP経由でデータを送信するための形式は?

TCP経由で送信するためにどのようなデータ形式を使用しますか?

私はスピードとスループットを最適化したいと考えていますが、自分のものよりも既存の標準を採用したいと考えています。

+2

どのような種類のデータを送信していますか? –

+0

基本的にテキストです。 Name-> Nosrama、Country-> US、ID-> 2343 ... – Nosrama

答えて

0

ほとんどの場合、人々は両端で再現可能なレイアウトのレコードを宣言し、それを使用します。それよりももっと複雑なニーズがある場合にのみ、それ以上のことをする必要があります。

さまざまな長さの文字列については、長さとデータの長さのバイトとして実装するだけです。 Cishの言語では、ヌルターミネーターを利用することで、長さがなくてもおそらく得ることができます。それより複雑なものは本当に必要ありません。

0

データの種類とデータを使用している人によって異なります。

独自のクライアント/サーバーのペアを作成している場合は、間違いなく最適な形式はバイナリのシリアル化の一種です。コンパクトで、ワイヤーで簡単に伝送でき、素早く再構成できます。あなたは、さまざまな言語を使用して、多くの消費者のために何かを書いている場合は

...その後、私はXMLまたはJSON(あなたのデータのサイズと複雑さによって異なります)の詳細については心配だろう。

XMLは、大きく複雑なデータに適しています。

JSONは、小さくてコンパクトなデータに適しています。

+1

XML - >大規模データ、JSON小データステートメントについて詳しく説明できますか? – JosefAssad

+0

大量のデータをJSON経由で送信しようとすると、すぐに問題が発生します。 JSONの大きな部分を見て、問題をデバッグしようとするのは悪夢です。 XMLは、物事がより大きく複雑になり始めるときに、より構造化され、扱いやすくなります。 –

0

あなたのデータのキー/値の外観はJSONはただで作業する方が簡単かもしれません示唆しています。

最適化の速度とスループットがおそらくより良いアプリケーションの外側で処理され、OSI modelのレイヤ3および4は、私は危険を思います。これらのレイヤーに投資された最適化作業の1つの単位は、データの構造とエンコーディングに取り込まれた1つのユニットよりも、最適性を高める可能性があります。

+0

ありがとうございます - あなたはOSIモデルについてあなたの要点を詳しく述べることができますか?私は特に何を見なければならないでしょうか? – Nosrama

0

XMLは、データ型に対して良い選択のように聞こえる - そこにXMLライブラリの多くは、すでにそこだ(またはあなたの言語でもXML解析が内蔵されている場合があります)。それは離れて、ワイヤ上のバイナリエンコーディングから滞在する理由の一つですので、テキストベースなので

も、それが簡単に手で物事をデバッグすることができます。

関連する問題