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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.70064 の関連記事表示

<< 0 >>
■70064  UDPを使用して3台での通信について
□投稿者/ にこにこ -(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
親記事 /過去ログ119より / 関連記事表示
削除チェック/

■70068  Re[1]: UDPを使用して3台での通信について
□投稿者/ 甕星 -(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の部分は不要です。
記事No.70064 のレス /過去ログ119より / 関連記事表示
削除チェック/

■70109  Re[2]: UDPを使用して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の部分は不要です。
記事No.70064 のレス / END /過去ログ119より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -