C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: c# UDPプログラム


(過去ログ 34 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■17227 / inTopicNo.1)  c# UDPプログラム
  
□投稿者/ oeppu (1回)-(2008/04/19(Sat) 08:37:28)

分類:[.NET 全般] 

c#でUDPネットワークのプログラムの作成しようと思うのですが、
TCPの方はソケットプログラムで作りました。
そこでUDPも同様に作りたいと思うのですが宜しくお願いします。
引用返信 編集キー/
■17229 / inTopicNo.2)  Re[1]: c# UDPプログラム
□投稿者/ はつね (609回)-(2008/04/19(Sat) 09:01:43)
No17227 (oeppu さん) に返信
> c#でUDPネットワークのプログラムの作成しようと思うのですが、
(中略)
> そこでUDPも同様に作りたいと思うのですが宜しくお願いします。

C#のバージョン(.NET Frameworkの)が分かりませんが、UdpClientクラスを使って組み事になると思います。


> TCPの方はソケットプログラムで作りました。

# TcpClientクラスを使って作ったって事?
引用返信 編集キー/
■17230 / inTopicNo.3)  Re[1]: c# UDPプログラム
□投稿者/ επιστημη (939回)-(2008/04/19(Sat) 09:04:12)
επιστημη さんの Web サイト
> そこでUDPも同様に作りたいと思うのですが宜しくお願いします。

何を宜しくお願いしているのでしょうか?

引用返信 編集キー/
■17235 / inTopicNo.4)  Re[2]: c# UDPプログラム
□投稿者/ ネタ好き (121回)-(2008/04/19(Sat) 16:25:10)
oeppu さんへ

>そこでUDPも同様に作りたいと思うのですが宜しくお願いします

まさかとは思いますが、TCPとUDPを同じと思っていないよね?
引用返信 編集キー/
■17260 / inTopicNo.5)  Re[3]: c# UDPプログラム
□投稿者/ oeppu (3回)-(2008/04/20(Sun) 20:58:46)
 あるサイトで以下のUDPソースがありましたが、自分はソケットを使用したUDPプログラムがあって
UDPの場合ProtocolTypeやSocketTypeをUDP用にソケット生成してbindさせて通信させるのだと思ってました。これでは駄目なんでしょうか?

【当方が思ってたソース例】
int port = 9999;
 Socket sock = new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
IPEndPoint ipEndPoint = new IPEndPoint("localhost",port);
sock.Bind(ipEndPoint);

【以下サイトで見つけたソース】
    //文字コードを指定する
System.Text.Encoding enc = System.Text.Encoding.UTF8;

//データを送信するリモートホストとポート番号
string remoteHost = "localhost";
int remotePort = 2002;
//バインドするローカルポート番号
int localPort = 2002;

//ローカルポート番号localPortにバインドする
System.Net.Sockets.UdpClient udp =
new System.Net.Sockets.UdpClient(localPort);

//送信するデータを読み込む
string sendMsg = Console.ReadLine();
byte[] sendBytes = enc.GetBytes(sendMsg);
//リモートホストを指定してデータを送信する
udp.Send(sendBytes, sendBytes.Length,
remoteHost, remotePort);

//データを受信する
System.Net.IPEndPoint remoteEP = null;
byte[] rcvBytes = udp.Receive(ref remoteEP);
string rcvMsg = enc.GetString(rcvBytes);
Console.WriteLine("受信したデータ:{0}", rcvMsg);
Console.WriteLine("送信元アドレス:{0}/ポート番号:{1}",
remoteEP.Address, remoteEP.Port);

//UDP接続を終了
udp.Close();

引用返信 編集キー/
■17266 / inTopicNo.6)  Re[4]: c# UDPプログラム
□投稿者/ れい (500回)-(2008/04/21(Mon) 04:30:12)
2008/04/21(Mon) 04:36:44 編集(投稿者)

No17260 (oeppu さん) に返信
> UDPの場合ProtocolTypeやSocketTypeをUDP用にソケット生成してbindさせて通信させるのだと思ってました。これでは駄目なんでしょうか?

その通り。
この部分はまったく何も問題ありません。

皆が憂いているのは、

> TCPの方はソケットプログラムで作りました。
> そこでUDPも同様に作りたいと思うのですが宜しくお願いします。

ここの、「同様」の部分です。

TCPとUDPが「同様」につくれるというなら、
PictureBoxも、DataGridViewも「同様」に使えますし、
プログラミングと家の建築設計も、同じようなものです。

相同性の客観的指標がありませんが、
私の意見では…

TCPとUDPは同じSocketを使いますが、
実用的なプログラムを作る側の立場からすると、
実装が根本から変わってしまうので、
「同様」とはとても言えません。


No17229 (はつね さん) に返信
>>TCPの方はソケットプログラムで作りました。
> # TcpClientクラスを使って作ったって事?

ソケットプログラムといったら
Berkley Socketを使ったネットワークプログラムのことですよ。
昔はBerkley Socket以外にもTCP/IP実装があったのです。
WinSockも.Netも、ほぼそのままBerkleyを採用してますが。

最近ぜんぜん聞かなくなりましたねぇ。


引用返信 編集キー/
■17269 / inTopicNo.7)  Re[5]: c# UDPプログラム
□投稿者/ はつね (610回)-(2008/04/21(Mon) 10:31:23)
はつね さんの Web サイト
No17266 (れい さん) に返信
> ■No17229 (はつね さん) に返信
> >>TCPの方はソケットプログラムで作りました。
>># TcpClientクラスを使って作ったって事?
>
> ソケットプログラムといったら
> Berkley Socketを使ったネットワークプログラムのことですよ。

それはしってる。
それを使える人だったら、TCPやUDPは別物だってのも分かってるはずなので確認してみたのですよ。

引用返信 編集キー/
■17358 / inTopicNo.8)  Re[6]: c# UDPプログラム
□投稿者/ oeppu (5回)-(2008/04/22(Tue) 22:30:04)
No17269 (はつね さん) に返信
> ■No17266 (れい さん) に返信
>>■No17229 (はつね さん) に返信
>>>>TCPの方はソケットプログラムで作りました。
> >># TcpClientクラスを使って作ったって事?
>>
>>ソケットプログラムといったら
>>Berkley Socketを使ったネットワークプログラムのことですよ。
>
> それはしってる。
> それを使える人だったら、TCPやUDPは別物だってのも分かってるはずなので確認してみたのですよ。
>
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -