DOBON.NET DOBON.NETプログラミング掲示板過去ログ

UDPの通信について

環境/言語:[win2000 VB.NET2003 Framework1.1]
分類:[.NET]

TipsのUDPの通信を参考にしてソフトを作成しているのですがデータを受信する際、
データを受信するまでudp.Receiveでブロックされ止ってしまいます。
割り込み処理的に受信があった時のみReceiveするとか、
一定時間受信を待って、こなかったらやめて抜けるなどしたいのですが、
VB.NETのUDP通信では難しいでしょうか?よろしくお願いします。
Socketクラスを使用すると、非同期受信ができます。
クライアントプログラムなら、ヘルプで「非同期クライアント」で
検索してみて下さい。
■No4565に返信(NowhereManさんの記事)
> Socketクラスを使用すると、非同期受信ができます。
> クライアントプログラムなら、ヘルプで「非同期クライアント」で
> 検索してみて下さい。

ヘルプをみてみたのですがいまいちどのように作成したらいいのか分かりません。
どこをどのように変更したらいいのか分からず困ってます。
> ヘルプをみてみたのですがいまいちどのように作成したらいいのか分かりません。
> どこをどのように変更したらいいのか分からず困ってます。

非同期クライアント ソケットの使用
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpguide/html/cpconusingnon-blockingclientsocket.htm
非同期クライアント ソケットの例
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpguide/html/cpconnon-blockingclientsocketexample.htm
等に、非同期ソケットのコード例と説明が記載されていますが、
これらは読まれましたか?
  • 題名: Re[4]: UDPの通信について
  • 著者: イルカ
  • 日時: 2004/06/29 17:27:44
  • ID: 4624
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No4619に返信(NowhereManさんの記事)
> 非同期クライアント ソケットの使用
> ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpguide/html/cpconusingnon-blockingclientsocket.htm
> 非同期クライアント ソケットの例
> ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpguide/html/cpconnon-blockingclientsocketexample.htm
> 等に、非同期ソケットのコード例と説明が記載されていますが、
> これらは読まれましたか?

読んで実際に同じように作成してみたのですが分かりませんでした。
■No4619に返信(NowhereManさんの記事)
> 非同期クライアント ソケットの使用
> ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpguide/html/cpconusingnon-blockingclientsocket.htm
> 非同期クライアント ソケットの例
> ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpguide/html/cpconnon-blockingclientsocketexample.htm
> 等に、非同期ソケットのコード例と説明が記載されていますが、
> これらは読まれましたか?

UDPで通信を行う場合
Dim Socket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, _
ProtocolType.Tcp)
の箇所を
Dim Socket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, _
ProtocolType.Udp)
に変更してみてやってみたのですがエラーが発生します。

どうしたらよいのか分からないのですが、ご存知の方教えて下さい。
> UDPで通信を行う場合
> Dim Socket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, _
> ProtocolType.Tcp)
> の箇所を
> Dim Socket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, _
> ProtocolType.Udp)
> に変更してみてやってみたのですがエラーが発生します。
>
> どうしたらよいのか分からないのですが、ご存知の方教えて下さい。

どこで、どのようなエラーになりましたか?
  • 題名: Re[6]: UDPの通信について
  • 著者: イルカ
  • 日時: 2004/07/06 9:18:12
  • ID: 4727
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
■No4718に返信(NowhereManさんの記事)
> どこで、どのようなエラーになりましたか?
以下の様に修正したらエラーがでなくなりなんとか通信を行うことができました。

Client = New Socket(remoteEP.AddressFamily, SocketType.Dgram, _ ProtocolType.Udp)

UDPの通信では、コネクションレスの通信なのでTCP/IPのようにどちらかがクライアント、サーバーというような考え方はないのでしょうか?
今、作成しているソフトはアプリケーション起動時は、クライアントになり、
それ以降は、相手からの受信を待つサーバーになるのですが、どのように作成してすればよいのか今試行錯誤しながらソフトを作成しています。
いい方法はありませんか?

DOBON.NET | プログラミング道 | プログラミング掲示板