2011-12-15 7 views
1

私は、他のいくつかのデバイスにデータをブロードキャストする必要があるアプリケーションの作成の初期段階にあります。3g以上のAndroid用の

私が最初に考えたのは、彼は、UDPは(私のアプリのために不可欠である)モバイルネットワーク にするときNATを押し通すことができなくなりますが、両方 http://code.google.com/p/boxeeremote/wiki/AndroidUDPAndroid 3G UDP Broadcast によると、UDPブロードキャストを使用していました。

私はどちらかといえば、サーバーを使ってブロードキャストすることができますが、私のホームサーバー上で多くのトラフィックを生成することは避けたいと思います。

私が考えることができる最後の選択肢は、複数のtcp/ip接続を持ち、接続されたすべてのクライアントを経由してブロードキャストを送信することです。しかし、私は少なくとも30人のリスナーを持つことにしているので、これは高価になると私は信じています。

私は任意の放送が、それは私がいずれかを投稿していない理由です、まだコードが関連付けられていません。)

はNATを突破する方法はありますか?電話機は同時に30のtcp/ip接続を処理できますか?あるいは私は他の放送方法を調べるべきですか?

何かヒントをいただければ幸いです!

種類は ヨハン・リッシュ

について::::::::::::::::::::::::: ADDED ::::::::::: :::::::::::::::::::::::::::::::::: 30-360秒ごとに10-20文字の長さの文字列を送信します。 ポイントは文字列形式です。データの送信順序は重要ではないので、まずudpを考えました。

ユーザーがログインしたときに自分の現在のIPでデータベースを更新するようにサーバーを設定しました。

私はそれがグローバルに機能することを望んでいますが、同じ国のモバイルネットワーク内で機能する限り、

これは、私が考えることができるすべての関連情報です。これでいくつかのことがクリアされることを願っています! ::::::::::::::::::::::::::::/ADDED ::::::::::::::::::::::::::::::::: ::::::::::::

+0

あなたが正確に何を放送するのか、どのくらいの頻度で、他のデバイスの場所などを説明すれば助けになるでしょうか。少し詳細を投稿すると、誰かが代替案を提案できるかもしれません。 – Squonk

答えて

4

UDPはUDPが宛先アドレスを持っていないため、UDPは通過しません。したがって、技術的にUDPはすべてのサブネットワークに送信する必要があります。ネットワークが自宅のLANである場合、大したことではありませんが、ネットワークがISPまたは大学のバックボーンまたは携帯電話プロバイダである場合、UDPは数十万のサブネットに複製される可能性があります。これは誰もがネットワークのパフォーマンスを低下させるパケットストームであり、実際には少数のクライアントと話したいだけなので、あなたの特定のアプリには大過剰です。

この問題はすでに何度も解決されています。インスタントメッセージングクライアントは、あなたと同様の状況です。可能であれば、ファイアウォールを介して直接P2Pメッセージングを行いたいと考えています。どうやってやっているの?元のNATトラバーサル/ファイアウォールトラバーサルソリューションは、メッセージリレーサーバーをセットアップすることでした。すべてのクライアントはサーバーと通信し、サーバーはあるクライアントから他のクライアントに適切なメッセージをエコーし​​ます。これは、クライアントがサーバーへの発信接続を開始するため、NATとファイアウォールで機能します。

クライアントがピアツーピア接続を確立できる場合は、リレーサーバは、単にクライアントに互いのIPアドレスを与え、メッセージを中継停止することができます。

UPNPは、クライアントが着信トラフィック用のポートを開くためにファイアウォールを要求できるようにするプロトコルです。 BitTorrentクライアントはUPNPを使用して、クライアントがファイル共有のためにP2Pに接続できるようにします。クライアントはトレントサーバー経由でお互いを見つけます。ほとんどのホームLANファイアウォールルータは現在UPNPをサポートしていますが、セルラーネットワークプロバイダがUPNPサポートを提供することは私には疑問に思えます。

もう一つは、(リモート)可能性は、マルチキャストTCP/IPですが、私はこれが本当に「プッシュ」サーバからクライアントに流れるコンテンツではなく、ピア・ツークライアントから発信ピアのために最適化されて思い出すよう。

オープンソースのIMクライアント、特にAndroid実装のものを見て、彼らがどのようにIMをやっているかを見てみることをお勧めします。 Jabberは心に浮かぶものですが、私は確信しています。 IMシステムのメッセージングAPIをデータ転送レイヤーとして使用することもでき、ワイヤレベルの詳細から完全に外れることはありません。

+0

それを調べます!どうもありがとう! – Risch

関連する問題