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

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

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

Re[2]: UDPを使用して3台での通信について


(過去ログ 119 を表示中)

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

■70064 / inTopicNo.1)  UDPを使用して3台での通信について
  
□投稿者/ にこにこ (1回)-(2014/02/22(Sat) 19:38:56)

分類:[VB.NET/VB2005 以降] 

(開発環境)
・VB2010
・OS:Windows7

UDPをして3台のPCと通信を行いたいのですがどのようにすればわかりません。

PC-1:IPaddress 192.168.1.100(Port番号:6000)
PC-2:IPaddress 192.168.1.101(Port番号:6000)
PC-3:IPaddress 192.168.1.102(Port番号:6000)

PC-1でプログラムを作成し、PC-2とPC-3とUDP通信したいのですが、下記*1を
するとデバック開始時に「エラーInvalidOperationExceptionはハンドルされませんでした。」
と表示されます。
PC2台では、*1を削除すればPC-1とPC-2で問題なく通信できます。
Port番号を変える方法もあるかもしれませんが、Port番号は同じにしたいです。
何か方法はあるでしょうか?

' ソケット生成
Private objSck As New System.Net.Sockets.UdpClient(60000)
Private objSck2 As New System.Net.Sockets.UdpClient(60000) '*1これ追加


Private Sub Form1_Load( _
ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Load
' ソケット接続
objSck.Connect("192.168.1.100", 60000)
End Sub

Private Sub Form1_FormClosed( _
ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) _
Handles MyBase.FormClosed
' ソケットクローズ
objSck.Close()
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' ソケット送信
Dim dat As Byte() = _
System.Text.Encoding.GetEncoding("SHIFT-JIS").GetBytes("abc123")
objSck.Send(dat, dat.GetLength(0))

End Sub
End Class
引用返信 編集キー/
■70068 / inTopicNo.2)  Re[1]: UDPを使用して3台での通信について
□投稿者/ 甕星 (25回)-(2014/02/23(Sun) 04:41:37)
No70064 (にこにこ さん) に返信
> objSck.Connect("192.168.1.100", 60000)

ここで相手先IPアドレスをしていすのでは無く・・・

> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
> ' ソケット送信
> Dim dat As Byte() = _
> System.Text.Encoding.GetEncoding("SHIFT-JIS").GetBytes("abc123")
> objSck.Send(dat, dat.GetLength(0))
>
> End Sub

送信するときにSendtoメソッドを使って、相手先IPアドレスを指定します。

またUDPの場合は、通信相手が2台以上でも同じソケットを使用します。
*1の部分は不要です。
引用返信 編集キー/
■70109 / inTopicNo.3)  Re[2]: UDPを使用して3台での通信について
□投稿者/ にこにこ (3回)-(2014/02/25(Tue) 00:30:29)
甕星 さん

解決しました。
ありがとございました。


No70068 (甕星 さん) に返信
> ■No70064 (にこにこ さん) に返信
>> objSck.Connect("192.168.1.100", 60000)
>
> ここで相手先IPアドレスをしていすのでは無く・・・
>
>> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
>> ' ソケット送信
>> Dim dat As Byte() = _
>> System.Text.Encoding.GetEncoding("SHIFT-JIS").GetBytes("abc123")
>> objSck.Send(dat, dat.GetLength(0))
>>
>> End Sub
>
> 送信するときにSendtoメソッドを使って、相手先IPアドレスを指定します。
>
> またUDPの場合は、通信相手が2台以上でも同じソケットを使用します。
> *1の部分は不要です。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -