• ベストアンサー

Winsockを使ってVBでチャットをつくっているのですが・・・

TAGOSAKU7の回答

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

>UDP接続で2台のコンピュータでチャット 2台のPCでのチャットならTCP/IPの方がいいのでは・・・ UDPはエラー処理をしてくれないですけど、そこら辺のロジックも大丈夫ですか? 複数人数同時参加のチャットならUDPで組むと、早くすることも可能だけど、2台ならあまり意味が無いような気がするのは僕だけでしょうか?

参考URL:
http://www.microsoft.com/JAPAN/developer/library/MSwnsk98/vbprosockstate.htm
yoshi5
質問者

お礼

ありがとうございます。UDPとTCPのちがいがはっきりわかっていないところもあったので、今回の回答は大変助かりました。ところでUDPは何の通信にむいてるのでしょうか?

関連するQ&A

  • Winsock

    チャットプログラムを作りたく思い、初めてWinsockプログラミングにとりかかることになりました。 ログイン時に存在を知らしめるため、RemoteHostプロパティ???.???.???.255(じぶんちねっと)相手にUDP15500ポートに文字列を送信します。 マシンA UDP15500で待ち状態 マシンB UDP15500で待ち状態 マシンA ???.???.???.255のUDP15500に文字列送信 マシンA 受信 マシンA 送信 マシンA 受信 マシンA 送信 マシンA 受信 ・・・何度やっても同じ。 マシンB 送信 マシンA 受信 マシンB 受信 ・・・ここでなぜか両方受信できる。 マシンA 送信 マシンB 受信 マシンA 送信 マシンB 受信 マシンB 送信 マシンA 受信 マシンB 送信 マシンA 受信 マシンB 送信 マシンA 受信 ・・・・ 最初は自分で送ったメッセージを自分が受信してるだけなのですが、そこでもう片方がメッセージを送ると両方が受信します。 その後、どちらがメッセージを送っても、もう片方に届くだけで、自分には届きません。 しかし、両方のプログラムを再起動すると、また、同じ動作が最初から確認できます。 これはいったい、何が原因でこういうことになってるんでしょう。 もう1つ質問があります。 このようなサーバーを必要としないようなチャットプログラムのようなものを作るとき、そもそもUDPを使っていいのか、ポートは何番を使っていいのかとか、教えてもらえませんか?

  • Winsockでの送信(TCP)

    Winsockでの送受信プログラムを作成しています。 システム構成としてはサーバーが1つあって、それに複数のPC(クライアント)を接続します。 そしてチャットのようにやりとりを行うプログラムを作成しています。 しかし、チャットと違う点は、文字を、指定した相手(IPで指定)にのみ送信するということです。 自分で調べた結果UDPを用いれば簡単だということを知りました。(sendtoで送信先IPが指定できるから) しかし、TCPのほうが信頼性が高いということでTCPでやりたいと思いました。(勉強にもなるので) どなたかやり方をご教授お願いいたします。

  • VB6.0 Winsockについての質問です。

    VB6.0 Winsockについての質問です。 はじめまして。 現在、VB6.0を使用してTCP通信にてテキストデータを送るプログラムを作成しています。 機能としては全て完成しているのですが、現在再接続ができないじょうたいです。 PC上にサーバプログラムとクライアントプログラムを立ち上げます。 localport は 0 として設定しており、 host は、localhostとしています。 remortportは5000を設定しております。 現段階で発生している問題として、 クライアント側にてConnectイベントをさせ、 サーバ側にて、ConnectionRequestイベントが発生します。 クライアント側にて、Closeイベントは発生させ、 サーバー側も切断を確認します。 この状態でクライアント側から再度Connectイベントを発生させても サーバ側にてConnectionRequestイベントが発生しません。 サーバ側のプログラム一度終了させ、もう一度起動させると また、接続が可能になります。 もう、2日以上悩んでいるのですが、、、解決できません。 どなたか、詳しい方がいらっしゃいましたらご教授お願いします。

  • VBでの音声チャットについて

    みなさま初めまして。今、VBで音声チャットをする方法を探しています。 使用例は自宅にあってインターネットには接続されていないPC2台をクロスケーブルでつなぎ、そこで音声チャットをしようと考えています。 インターネットでそのまま「VB 音声チャット」と検索してもソースコードがありませんでした。 中にはDirectPlay Voiceを活用するといったものがありましたが、肝心の解説サイトがなく、書店に行っても本が見つかりませんでした。 そしてMCIを使うというものもありましたが、これについてはWindowsAPIのどれを使うのか、またどう使うのかが書いてなくて、初心者の私には難易度が高いです…。 初心者が音声チャットをやるべきではない、というご意見もあるかもしれませんが、挑戦したいと思っています。 もし参考になるサイト、コード、書籍がありましたら教えていただけますでしょうか。 よろしくお願いいたします。

  • チャットプログラミング

    簡単な接続型チャットプログラムを作っています。 サーバとクライアントをTCPを使って接続し、1対1でメッセージを送りあうというものなのですが、 自宅にPCが一台しかないのでサーバ、クライアントを同じPCで起動してテストしています。 クライアントで接続相手を指定するとき、自PCのローカルアドレスを入力すると、正常に動作するのですが、 グローバルアドレスを入力すると正しく接続できません。 ポート開放についてはhttp://www.akakagemaru.info/port/tcpport.phpのサイトで確認済みです。 パーソナルファイアウォールの設定も済んでいるはずです。 どこがいけないのでしょうか? <環境> Windows Vista VC++ EE

  • MSNの音声チャットができない・・・

    MSNの音声チャットをしようとして 相手にも承諾してもらってしようとすると 接続しようとしているネットワークまたはコンピュータで、問題が発生しています。後でもう一度やり直してください ってなってできなくなるんです。。 なぜだかわかる人いますでしょうか? よろしくお願いします

  • winsockの動作について。

    winsockの動作について、質問させていただきます。 (1)UDPのsendto()でWSAEADDRNOTAVAIL(10049)が発生する。 数十個(64個以内)のUDPソケットを用意し、for()ループで全てのソケットから送信した場合、途中からエラー(WSAEADDRNOTAVAIL)が発生してしまいます。 あて先のアドレス/ポートは全て同一なので、原因は別にあるのではないかと考えています。 sendto()と次のsendto()の間にスリープを入れると、WSAEADDRNOTAVAIL(10049)が発生しなくなるのは確認しました。 一度に処理できる数が決まっているといったような、制限があるのでしょうか? (2)TCPのconnect()に時間がかかる。 TCPクライアントのconnect()に30秒くらいかかる事があります。 connect()はノンブロッキングで実行し、その後にselect()を繰り返し呼んで接続の確認をしているのですが、その間にWSAGetLastError()でエラーを確認するとWSAEWOULDBLOCK(10035)となっています。 パケットをダンプすると"SYN"が送信されていないため、TCPクライアント側の問題だと考えています。 connect()が一瞬で成功する場合もあるため、なにか問題があるのではないかと思っているのですが、30秒くらいかかる場合もあるのでしょうか? ※(1)のUDPの送信処理を行った直後に、このTCPのconnect()を行うと時間がかかるような気がしています。 よろしくお願いします。

  • MSNメッセンジャーで音声チャット

    お使いのコンピュータ、インターネット サービス プロバイダ、またはネットワークが音声チャットまたはビデオ チャットをサポートしていません。相手側でこのようなメッセージが出るみたいですが、音声チャットする方法はありますでしょうか?

  • MSNメッセンジャーのボイスチャットが出来なくなった。

    MSNメッセンジャーのボイスチャットですが 今までは出来ていたのに、一昨日から突然繋がらなくなりました。 相手からの「招待」を「承諾」すると コンピューターに接続中…で止まったままになります。 別の相手でも試してみましたが、そちらもだめでした。 ヤフーメッセンジャーのボイスのほうは特に問題なく出来るようです。 またMSNはファイル送信はいつも出来ません。 調べてはみましたが、コンピュータ専門用語がよくわからなくて 諦めました(汗) ボイスチャットが出来なくなった原因は何でしょうか…?

  • チャットにて、ホストとは?

    先日、チャットで、「お前ホスト丸出しだぞ」「ふーん○○県か」と言われました。なぜ分かったのでしょう? 何か身元が割れるようなことがあるのでしょうか? ホストコンピュータの事を指しているのだと思いますが、検索してもよく意味がわかりません。 登録性のサイトではなく自分の方からもそういうのは見れない仕様だったと思います。 内容はふつうの軽い感じで別に危険なのはありません。チャットはあまり楽しめないたちなので、めったにやりませんし、相手も初対面で知らないです。 相手はそういう事をどのように調べたのでしょう? 何となく特定されるのはイヤなので、仕様を変える方法はありますか?