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

VB.NETでSocket通信 バインドできない

環境/言語:[VB.NET]
分類:[.NET]

WindowsXP SP2
VB2005
でSystem.net空間のSocketを使ってパケットキャプチャを作ろうとしています。
しかしながらソケットのバインド設定でエラー(無効な引数〜)と言われます
IpEndPointの設定が悪いのでしょうか
どのようにすればバインドできるかご教授ください


Private MySock As Socket

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As           System.EventArgs) Handles MyBase.Load

MySock = New Net.Sockets.Socket(AddressFamily.InterNetwork,                      SocketType.Raw, ProtocolType.Tcp)

Dim IpAddr As Net.IPAddress = Net.IPAddress.Any
Dim MyIpEndPoint As New Net.IPEndPoint(IpAddr, 0)

   MySock.Bind(MyIpEndPoint) ⇒ここでエラー

End Sub
■No19190に返信(としさんの記事)
> WindowsXP SP2
> VB2005
> でSystem.net空間のSocketを使ってパケットキャプチャを作ろうとしています。
> しかしながらソケットのバインド設定でエラー(無効な引数〜)と言われます
> IpEndPointの設定が悪いのでしょうか
> どのようにすればバインドできるかご教授ください
>
>
> Private MySock As Socket
>
> Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As           System.EventArgs) Handles MyBase.Load
>
> MySock = New Net.Sockets.Socket(AddressFamily.InterNetwork,                      SocketType.Raw, ProtocolType.Tcp)
>
> Dim IpAddr As Net.IPAddress = Net.IPAddress.Any
> Dim MyIpEndPoint As New Net.IPEndPoint(IpAddr, 0)
>
>    MySock.Bind(MyIpEndPoint) ⇒ここでエラー
>
> End Sub
>

SocketType.Raw と ProtocolType.Tcp の組み合わせがダメなんじゃね?
SocketType.Raw, ProtocolType.IP
でバインドできました。

MySock.Bind(MyIpEndPoint)
MySock.Blocking = False

でデータを受信っと・・・
'MySock.Receive(Buffer, 100, SocketFlags.Broadcast)
MySock.Receive(Buffer, MyIpEndPoint) ⇒ エラー

何か根本的なものが違うのかもしれません
勉強してきます
■No19224に返信(としさんの記事)
> でデータを受信っと・・・
> 'MySock.Receive(Buffer, 100, SocketFlags.Broadcast)
> MySock.Receive(Buffer, MyIpEndPoint) ⇒ エラー
>
> 何か根本的なものが違うのかもしれません
> 勉強してきます

そのエラーはコンパイルエラー?
Socket.Receiveの第2引数にエンドポイントを取るものなんて無いが。

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