C#でメッセンジャー作成中のテキスト通信について

このQ&Aのポイント
  • C#でメッセンジャー作成中のテキスト通信について分からない点があります。
  • 複数の人と同時にTCPでチャットをするためには、どのようにすればよいでしょうか?
  • データの受信と対応するフォームへの割り振り方法がわからず困っています。どのように解決すればよいでしょうか?
回答を見る
  • ベストアンサー

C#でメッセンジャー作ってますがテキスト通信について。

今C#でメッセンジャーを作っているのですが テキストでのチャット部分について分からないので質問させてください! 複数の人と同時にTCPでチャットを出来るようにしたいです。 そこでまず1対1で通信できるプログラムを作ろうと思ったのですが 複数の人とチャットするために新しいフォームを作ったとき同じポートとIPアドレスで通信しようとして接続できませんよね? 自分ではメインのフォームで一括してデータを受信して対応するフォームにデータを割り振るのが良いかな? って思ったのですがこれもまたどのようにして受信したデータを対応したフォームに割り振れば良いのか分からず困っています。 この問題をどのように回避するのが良いでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • yama06
  • ベストアンサー率61% (101/164)
回答No.2

起動時にGUIDを生成するなどして各クライアントを識別できるように すれば、プログラム内で振り分けられると思います。

参考URL:
http://dobon.net/vb/dotnet/programing/guid.html
world_kyoto
質問者

お礼

ありがとうございました。 無事動くようになりました。

その他の回答 (1)

  • yama06
  • ベストアンサー率61% (101/164)
回答No.1

P2Pのようなものを目指すのでなければ、 サーバを構築してどこかに立てておくのが良いのではないでしょうか。 お互いにファイアウォール越しでは1対1の通信もそうやすやすとは できないと思います。 あるいはイントラ内の話であれば、マルチキャストなどが 利用できるかもしれません。

world_kyoto
質問者

補足

P2Pを考えています。ブロードキャストが届く範囲でメンバリストを作成し、そこからP2Pで通信したいのです。 この場合複数の人とチャットする場合複数の人からそれぞれデータが送られてくると思うのですが そのデータをどの会話フォームに表示させるのか、どのようにデータを識別するかを悩んでます。

関連するQ&A

  • VB2005 シリアル通信のClose処理

    いつもお世話になっております。 表題の件につきまして、ご教示ください。 【処理内容】 メインフォームのボタンからポートをオープンし、 受信データ(1Byte)をテキストボックスに表示し続ける。 ※受信データは定期受信 通信をやめたいときにメインフォームのボタンから ポートをクローズする。 上記、クローズ時に、ほぼフリーズします。 原因はシリアル通信の受信イベントが別スレッドにて処理されているため、 Invoke()にてテキストボックスの更新をしており、 これが悪さをしているみたいです。 BeginInvoke()を使用するとフリーズは回避することができるのですが、 テキストボックスに表示される受信データの内容が激しく欠落してしまいます。 Invoke()を使いつつ、フリーズを回避する方法はないのでしょうか。 無知で大変申し訳ございませんが、よろしくお願いいたします。

  • メッセンジャーの通信の仕組みについて

    Yahoo!とMSNのメッセンジャーの通信の仕組みを知りたいのですが、どこを探したらいいかわからなかったため、ここに投稿させていただきました。 Yahoo!とMSNでは、使用するポート番号が違うようで、それにより、場合によってはサービスが受けれないことがあるようです。 チャット、ボイス、映像の通信方法とポート番号などをご存知でしたら、教えていただけないでしょうか。 また、参考文献がありましたら、教えていただけるととても助かります。

  • Yahooメッセンジャーのビデオチャット

    BBルータ配下の2台のPCにおいて,同時にYahooメッセンジャーの ビデオチャットをすることは可能でしょうか? ビデオチャットはTCP/UDPの5100番ポートが使用されることはわかったのですが, 色々な説明サイトを参照する中,NATのポートマッピングが必要との情報を 得ました. ポートマッピングが必要ということは,Yahooメッセンジャーを起動しているPCは ソケットのサーバプロセスとしてデータを受信し,Yahoo側のビデオサーバが クライアントプロセスとしてデータを送信という形式になっているのでしょうか? もしそうだとしたら,ポートマッピングでは実現が無理なような気がしております. また,ボイスチャット(音声)のほうは,特にポートマッピングをしなくても 音声送受信できていますが,こちらはPC側がソケットのクライアントプロセスとして データを受信しているからなのでしょうか? 以上のことから,多分2台同時ビデオチャットは不可能なのかと考えておりますが, もし,解決策などありましたらよろしくお願いします.

  • Windowsメッセンジャーの通信のしくみってどうなってるんですか?

    自宅にPCが2台あり、1台のルーターにつないでインターネットを利用しています。 ネットサーフィンやメールするには2台とも問題ないのですが、Windowsメッセンジャーのボイスチャットだけが使えませんでした。 いろいろ調べると、ルーターがUPnPに対応していないとWindowsメッセンジャーは利用できないことを知り、ルーターを調べたところUPnPに対応していないのであきらめていましたが・・・・ 自宅の2台のPC間では、ボイスチャットが利用できたんです。それと、P-inでインターネット接続している友人ともボイスチャットが可能でした。 その他の友人とはボイスチャットができないのになぜ、このようなことが起こるのかわかりません。 ご存知の方、Windowsメッセンジャーの通信についてぜひ教えてくださいm( _ )m

  • TCP/IPにおける端末間の通信について(NAPT)

    TCP/IPにおける端末間の通信について(NAPT) お世話になります。 TCP/IPについて質問です。 NAPT機能の付いたルータを介し、インターネット越しに通信を行う場合を想定します。 1.端末A(送信側)から端末B(受信側)にTCPあるいはUDPを用いてデータを送信する場合、端末Bでは必ず待ち受けるポートにbind(listen)し、また端末Aでは指定されたポート宛てにデータを送信する必要があると聞きました。 ここまでは理解できますが、ここにNAPT機能の付いたルータが介入する場合、"例外なく"端末B側のルータでポートマッピングを行う必要があるのでしょうか? 2.上記の認識がもし正しい場合、2台の端末で通信を行う場合は少なくとも片方でポートマッピングが必要ということになります。 だとするならば、SkypeやMSNメッセンジャーなどのクライアント側でポートマッピングが必要のないアプリケーションは、必ずサーバを介した通信を行っているということでしょうか? Skypeなどの仕組みを説明しているサイトを見ると、接続の手順を踏んだのちに端末間で通信を行うとの記述があるのですが、いくら接続先のIPがわかっていても、アプリケーション間で接続を確立するには、片方でポートマッピングが必要になると思うのですが、これはどういうことなのでしょうか? 3.上記の認識が正しい場合、UDPで受信する為には必ずポートマッピングが必要ということになります。 だとするならば、クライアント側でポートマッピングが必要のないアプリケーションは、少なくとも受信にはUDPを用いていないということでしょうか? 以上の3点についてお答え頂けると幸いです。 回答お待ちしています。

  • 複数の友人と同時に非公開でチャット出来るメッセンジャー

    Yahooメッセンジャーを利用しておりますが 1対1でしかチャットが出来ず不便しております。 同じ趣味を持つ仲間同士でチャットの出来る メッセンジャーはありますか?。 Yahooメッセンジャーでは複数と同時に出来る 機能はあるようですが、その会議室を公開しなければ なりません。 公開せずに仲間内でやりたいのです。 よいメッセンジャーがあればお教えください。

  • Windowsメッセンジャーについて

    Windowsメッセンジャーについて幾つか教えてください。 1.WindowsメッセンジャーとMSNメッセンジャーは違う物でしょうか? MSのWebサイトを見ると「XP用=Windowsメッセンジャー」、「Win2000以前=MSNメッセンジャー」というような表現がされていますが・・・? 2.Windowsメッセンジャーをインストールすると、途中でメールアドレスを登録するように指示されますが、これは正式なアドレスじゃないと問題がありますか?(架空のアドレスだとチャット等に影響がある?) 3.Windowsメッセンジャーは複数の相手と同時にボイスチャットやビデオチャットができるのでしょうか? Yahooメッセンジャーのボイスチャットを使ったら複数の人とボイスチャットはできたのですが、同時に会話ができるのは二人だけでした。Windowsメッセンジャーは複数人が同時に会話ができますか?また、複数拠点の映像も同時に表示されますか? 4.遠距離の友人数人とビデオチャットをやりたいと思ってますが、お勧めのソフト(Windowsメッセンジャー等)はありますか? 以上よろしくお願いします。

  • メッセンジャーの互換性について

    いつもお世話になっています。 YAHOOやMSNなどチャットソフトでは送信者も受信者もどちらも同じチャットソフトじゃないと通信できないと思うのですが、たとえばMSNメッセンジャーと互換性のあるチャットソフトなどあるのでしょうか? FreeBSDやLinuxとかでそのようなソフトがあると便利だと思うのですが。 ご意見よろしくお願い致します。

  • Yahooメッセンジャーで3人でチャットするには?

    教えて下さい。 今日の夜3人でチャットする事になりました。 私とAさんはYahooメッセンジャーを使っていましたが 今日初めてチャットします。 2人とも多数の人とした事がないのです。 BさんはYahooのチャットは初めてです。 みんな今まで1対1でしていたので、複数のチャットの仕方(相手の誘い方)が分かりません。 私はMSNを主に使っていました。 MSNなら誘いたい相手にお誘いをすれば数人でチャットが出来ています。 Yahooの場合どのようにして相手を誘って3人でチャット出来るのでしょうか? あまり会えない友達なので(5年は会っていません)、とても楽しみなんです。 方法を教えていただけますか?

  • MSNメッセンジャーのWEBカメラでの通信について質問させて頂きます。

    MSNメッセンジャーのWEBカメラでの通信について質問させて頂きます。 以前からMSNメッセンジャーでのチャットをよく使用しており 最近新しくWEBカメラ付きのノートパソコンを購入したのですが WEBカメラが付いているとチャットをしている相手には 常にカメラの映像が見えている状態になっているのでしょうか? それとも設定等をしなければ相手には見えないのでしょうか? メッセンジャーの設定は画像や公開する表示メッセージのところくらいしか変えていません。 チャットしている人全員に映像が見えているのは少し困るので・・ もしご存知の方がおられましたらよろしくお願いいたします。