- 締切済み
UDP通信でのポート
javaを使ってUDP通信を行います。 映像データと音声データの2つのデータが あります。 以下のようなことは可能ですか? (図の説明)AからBへデータを送信します。 Aのポートは1500番を使って映像データを 送信します。と同時に、同じ1500番を使って 音声データは送信できますか? 同一ポートで複数データを送信できるか知りたい です。 (このままだと、いくつもポートをあけるため データのタイムラグありすぎて使い物になりません。。 ) もしくは、1つのポートでデータの送受信が できるか知りたいです。 なにかヒントになるようなことでもいいので 教えてください。よろしくお願いします。 A ------------------------> B (1500) 映像データ送信 A ------------------------> B (1500) 音声データ送信
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- terra5
- ベストアンサー率34% (574/1662)
>Cだったら、こういったこと、 >(映像、音声のデータ通信、テレビ会議システム) >はできるんでしょうか? 多分、既存のシステムはどうせCかC++だろうとは思います。 >また、通信速度、実際のクライアントでの >映像の表示速度についてはどうですか? 通信速度の上限はすぐにわかりますから、 実際はそれより大幅に低くなることを考えて、 実際に転送可能なデータを考えて、 それでなんとかすることを考えるでしょう。 また、UDPを使うならプロトコルのヘッダ等の 管理情報があるので、実際に送れるデータサイズについても考慮する必要がありますし。 まあ、実際はどうやって通信に必要なデータを小さくするかに尽きる気がします。 多分、こういう速度の限界に関わることを考えるなら、 IPパケットとかUDPパケットがどうなっているかとか、 Ethernetはどうやって通信しているかとか そういった知識がないと難しいかも知れません。 当然、速度を考える場合は通信経路として何を想定しているかにも関わってきますが。 具体的に何をしようとしているのかわかりませんので、 この程度の話が限度です。 まあ、これ以上難しい話ができるかどうかは不明です(笑) ボロがでそう。
- terra5
- ベストアンサー率34% (574/1662)
>JMF APIを使ってやろうとしているのですが、 そういうことは最初にはっきりと書いた方がいいですよ。 とりあえず、 http://java.sun.com/products/java-media/jmf/2.1.1/apidocs/ 見てみましたが、何をどう使っているのか探すのが面倒なので止めました(^^; 実際に使った、サンプルや作ったソースを置いた方が回答も得やすいとおもいます。 ちなみに、私はJAVAはほとんど知りませんので、 あまり回答は期待できませんが(^^;; UDPの問題ならわかるかと思って書いていたもので・・。 Cでなら何度も使ってますので。 >Jarファイルであるため実装が明らかで >ないのです。 http://java.sun.com/products/java-media/jmf/index.html には,JMFのソースがあるようです。
- terra5
- ベストアンサー率34% (574/1662)
同じポート自体は複数同時に使えませんから、 自分で区別がつくように情報を付加して送るしかないでしょうね。 例えば,一度に送るデータは1400バイトと決めておいて, 先頭に識別用のデータを追加して、それで音声データか 映像データか区別する。 但し、現状でタイムラグがありすぎて使えないなら、 さして変わらないように思いますが。 ポートが複数あろうが、一つであろうが物理的には 同じ所を伝わるわけですし、厳密な意味での同時は不可能です。 同時という意味なら、別々なポートを使い、物理的に別な経路で送る方がはるかに近いですね。 具体的にどんなこと、どうやって実現しているのかわからないのでなんとも言えませんが・・・。
補足
回答ありがとうございます。 すみません。同時、というのは間違えました。 単一ポートでの複数データの通信、という ことを質問しました。 JMF APIを使ってやろうとしているのですが、 JMFの中の処理でセッションのオープン等は やっているため、今ひとつ、どうやって 同じポートでデータの通信を行っていいのか わかりません。。。 既存のサンプルを動かすと 最初に1500番ポートを使ってオープンし、 次にまたオープンをかけてしまうようなので Can't openというエラーがでます。 が、Jarファイルであるため実装が明らかで ないのです。
- toysmith
- ベストアンサー率37% (570/1525)
質問の趣旨が読み取れていないかもしれませんが… UDPは“基本的に”データグラムごとに通信を確立し切断します。 結果、1回の送信データグラム内に多種類のデータを詰め込む以外に多種類のデータを単一ポートで(同時に)送る手段は無いはずです。 また、送信と受信では別の通信単位になりますので、「1つのポートで(同一通信単位内で)データの送受信」という状況はありえません。
補足
回答ありがとうございます。 書き方が悪かったようです。 多種類のデータを単一ポートで送る手段を 質問しました。 同時に、というのは間違えました。 同時じゃなくていいです。
補足
回答ありがとうございます。 >http://java.sun.com/products/javamedia/jmf/index.html >には,JMFのソースがあるようです。 はい。しかし、実装してあるソースは 一部分だけでした。 (実装がないソースも多い。) JMFに対しての情報量が極端にすくないですね。 Cだったら、こういったこと、 (映像、音声のデータ通信、テレビ会議システム ) はできるんでしょうか? また、通信速度、実際のクライアントでの 映像の表示速度についてはどうですか? つなぐ台数にもよるのでしょうが。。。 もしよかったら教えてください。