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

SocketでTypeOfServiceを設定するには

  • 題名: SocketでTypeOfServiceを設定するには
  • 著者: ちゃー
  • 日時: 2003/12/21 1:11:11
  • ID: 1909
  • この記事の返信元:
    • (なし)
  • この記事への返信:
    • (なし)
  • ツリーを表示
環境/言語:[WindowsXP]
分類:[.NET]

Socketで送信するIPパケットのTypeOfServiceを設定したいのですが、
SetSocketOptionでTypeOfServiceを設定しても、実際に送信パケットを
キャプチャしてみると反映されていません。
DontFragmentやIpTimeToLiveは反映されるのですが。

以下は実験してみたソースです。フォームにボタン1つです。
どなたか解決方法を知っている方がいらっしゃいましたら、
教えて下さい。

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim s As Net.Sockets.Socket
        Dim RemoteIPEndPoint As Net.IPEndPoint
        Dim RemoteIPString As String = "192.168.1.2" '送信先IPアドレス
        Dim RemotePortString As String = "80" '送信先ポート
        Dim msg As Byte() = System.Text.Encoding.ASCII.GetBytes("abc")

        RemoteIPEndPoint = New Net.IPEndPoint(Net.IPAddress.Parse(RemoteIPString.ToString), _
          CInt(RemotePortString)) 'エンドポイント

        s = New Net.Sockets.Socket(Net.Sockets.AddressFamily.InterNetwork, _
                Net.Sockets.SocketType.Dgram, Net.Sockets.ProtocolType.Udp) 'UDPソケット

        s.SetSocketOption(Net.Sockets.SocketOptionLevel.IP, _
            Net.Sockets.SocketOptionName.DontFragment, 1) 'DontFragmentを設定する
        s.SetSocketOption(Net.Sockets.SocketOptionLevel.IP, _
            Net.Sockets.SocketOptionName.TypeOfService, 160) 'TypeOfServiceを設定する
        s.SetSocketOption(Net.Sockets.SocketOptionLevel.IP, _
            Net.Sockets.SocketOptionName.IpTimeToLive, 255) 'IpTimeToLiveを設定する

        s.SendTo(msg, 0, msg.Length, Net.Sockets.SocketFlags.None, RemoteIPEndPoint) '送信
    End Sub

以上

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