Top > プログラミング > .NET Tips> UDPによりデータの送受信を行う

UDPによりデータの送受信を行う」への評価、コメント

評価

良い / 悪い = 54 / 14 (「良い」の割合 = 0.794 , 人気度 = 1.455

評価する

コメント一覧


通常のコメント
じじい 2022/01/3 (Mon) 22:35:26
vb.netをCore3.1で動かしてみましたところ、
問題なく動きましたが、注意点として

Button2_Clickにある。
Button1.Enabled = False
は、他の方が指摘されていた通り不要、というかこれがあると
先に送信ボタンを押してしまうと、受信を始めることができません。

また、
Private udpClientR As System.Net.Sockets.UdpClient = Nothing
Private udpClientS As System.Net.Sockets.UdpClient = Nothing
といった感じで送受のクライアントを分けました。

さらに、送信するポートは、TextBoxで指定したポートではなく、任意のポートとなってしまうようですが、受信ポートはTextBoxの通りのため問題なく動作します。

このため、localhost内で通信する場合はポートによる送信者の区別ができませんが、
そのあたりは送信内容にコード上でテキストを付加するなどして何とでもなります。

シンプルでとても良いコードで大変参考になりました。
上記、皆様の参考になれば。

通常のコメント
Amino 2021/03/11 (Thu) 17:13:33
非同期送受信の例ですが
受信用と送信用で同じUdpClientのインスタンスを使っていますが
送信時に相手が存在しない場合、受信待ちも「切断された」の例外で終了します
そのため、その後相手を起動しても相手からの送信を受信できません

対処として受信と送信で別のインスタンスを使った方がよさそうです

通常のコメント
ぴよぴよ 2020/06/30 (Tue) 04:38:17
基礎の勉強になりました。ありがとうございます。

通常のコメント
匿名 2020/03/8 (Sun) 16:23:19
すべてのIPアドレスをListenした場合、ローカルブロードキャストかユニキャストかなど送信先のIPアドレスを知ることは可能ですか?

評価の理由
θ 2019/09/3 (Tue) 10:40:29
評価:良い
突然UDP通信を行う案件が降って来たので、大変参考になりました。

評価の理由
kuwa 2018/09/20 (Thu) 18:19:37
評価:良い
大変参考になり、助かります。
ありがとうございます。

評価の理由
匿名猫ちゃん2号 2018/08/28 (Tue) 01:11:44
評価:良い
これでチャットとか作った場合、通信内容ってもれちゃうけーですか?

通常のコメント
匿名 2017/06/27 (Tue) 09:39:48
button enabledをfalseにしているが、そうしたらボタンが押せなくなると思ったけど、そこの動作はどんな感じになっていますか?

通常のコメント
匿名 2017/06/27 (Tue) 09:23:20
button1.enabledとあるが、それだとボタンが押せなくなると思ったのですが、ちゃんと動作しますか?

通常のコメント
KN 2017/03/28 (Tue) 15:31:54
 初心者に近い私にこのサイトは大変役立っています。
 このサンプルプログラムを使って連続で数百Kバイトのデータを送信すると通信がロックする事があります。1回のBeginSendに対して複数のコールバックがある場合があり、その場合にロックするのですが、2回目以降のコールバックがあった時にダミーでBeginSend関数を実行すると解決します。

通常のコメント
「」 2016/12/21 (Wed) 18:04:30
IPv4/IPv6 両対応は IPv6Only を false する代わりに、
udp.Client.DualMode = true; でも行けますね。

通常のコメント
管理人 2015/06/24 (Wed) 00:49:24
> メンバ変数でudpClientを宣言しているのだからそのままそれを使えばいいのかな~?などと思っているのですが

おっしゃる通りで、それでもかまいません。サンプルは、コールバックメソッドにオブジェクトを渡す例だと思ってください。

通常のコメント
変なところが気になる初心者 2015/06/1 (Mon) 18:40:29
"非同期的に送受信を行う"のサンプルで、送受信コールバックメソッドの各呼出元ではメンバ変数udpClientの非同期メソッドを、メンバ変数udpClient自身を渡してコールしています。
そして各コールバックメソッドとも引数のIAsyncResultからUdpClientクラスのインスタンスをキャストで取得しています。

このキャストによるUdpClientクラスのインスタンス取得処理は必ずこうでないと(わざわざキャストしないと)駄目なのでしょうか?

素人考えだと、メンバ変数でudpClientを宣言しているのだからそのままそれを使えばいいのかな~?などと思っているのですが、実は引数のインスタンスをキャストして使う何らかの理由があったりするのでしょうか?長文ですみません。

評価の理由
無名 2013/07/25 (Thu) 17:08:06
評価:良い
一応動くが受信だけはどうするのかが分からない。

評価の理由
匿名 2013/03/11 (Mon) 14:09:47
評価:悪い
クソ内容
MSDNを見ると現在はこのコードでは動作しないことがノートされています

自己解析能力とか言ってる奴は詐欺師もいいところ
動かないコードは動かない

評価の理由
2012/11/23 (Fri) 23:33:09
評価:悪い
実用性がない
利用するケースによって適当に加工しないとエラーになることがある。初心者さんにはハードルが高い

評価の理由
masayan 2010/11/20 (Sat) 12:28:57
評価:良い
とても分かりやすいサンプルだと思います

通常のコメント
KOBA789 2009/12/6 (Sun) 21:48:05
いや、サンプルに実用性があるはずないでしょう。
サンプルは読んで仕組みを理解するためにあるわけで、
理解した上で作られるものが初めて実用性を持てるのですよ。

通常のコメント
うどちゃん 2009/07/10 (Fri) 11:09:47
実用性が無い、とコメントがあるようで。。。

実用性を追うと自己解析能力が低下しますよ。
これだけのサンプルを公開されている所はそんなに多くないですし、
展開次第では運用レベルまで使えるんじゃないでしょうか。

評価の理由
kuro 2008/11/17 (Mon) 22:56:57
評価:良い
先日はTCPの方も拝見させてもらいました。
大変参考になりました。私のような初心者にもわかり易く
丁寧に書かれております。
まだ、見ていないページも沢山あり、勉強させてもらいます。

評価の理由
ゆめらじ 2007/10/1 (Mon) 14:51:23
評価:良い
授業でまんま使わせてもらいました
ありがとうございます

評価の理由
suzukimitsuru 2007/01/29 (Mon) 00:09:30
評価:良い
とても簡潔で判り易いコードでした。

通常のコメント
hk 2006/12/19 (Tue) 16:30:48
送信先のLANケーブルを抜いてsendを実行し、レスポンス受信の為receiveを実行すると応答無しとなりますが、receiveに対するエラー検知はどのようなプログラムになりますか?
至急コメントを頂きたい!

通常のコメント
YK 2006/09/28 (Thu) 13:57:40
実用性のないサンプルはいらない。

評価の理由
Kohey 2005/10/13 (Thu) 13:51:05
評価:良い
送信・受信で別プログラムになっていると
もっと判りやすかったかも。

通常のコメント
高島恵一郎 2005/02/26 (Sat) 17:55:51
バッファのことについて書いた方が良いと思います。
まぁ文字程度ならよいのでしょうが・・・
せめて補足程度には書く方がよいかと・・・

通常のコメント
エルフの石 2005/01/7 (Fri) 10:48:45
VB.netの方がどうもうまく動かないのです(涙
おかしいなぁ・・・

コメントの投稿

[説明]