none
IPV6でのUDP通信について RRS feed

  • 質問

  • 初めての投稿です。

    現在、C#+UDP Clientにて、マルチキャスト送信を行おうとしていますが、PCの電源投入時に通信ができない(パケットが流れない)現象が発生しています。

    上記状態(PC起動後)で、NICもしくは、バインドされているプロトコル(IPV6)を一度無効にして有効にするとパケットが流れ始めます。

    試験方法は下記サンプルにて、Wiresharkでパケット採取しいます。

    環境はWindows7 Professional 32bit(SP1) VS2010 .net4.0 & Vs2012 .net4.5 で試験しています。

    (現状はWMIにてNICを再起動するという力業で運用していますが、ネットワークドライブが切断されてしまうため、不都合が生じています)

    どなたか同様の現象を経験された方がいらっしゃいましたら、解決策をご教授頂ければ幸いです。

    何卒みなさんの知識をお貸しください、よろしくお願いします。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO;
    using System.Net;
    using System.Net.Sockets;

    namespace IPV6_UDP {
    class Program {
    static void Main(string[] args) {
    byte[] data = new byte[] { (byte)'T', (byte)'E', (byte)'S', (byte)'T'};
    IPAddress m_GrpAddr = IPAddress.Parse("FF02::1");
    UdpClient client = new UdpClient(AddressFamily.InterNetworkV6);
    IPv6MulticastOption ipv6MulticastOption = new IPv6MulticastOption(m_GrpAddr);
    IPAddress group = ipv6MulticastOption.Group;
    long interfaceIndex = ipv6MulticastOption.InterfaceIndex;
    IPv6MulticastOption ipv6MulticastOption2 = new IPv6MulticastOption(group, interfaceIndex);
    client.JoinMulticastGroup(m_GrpAddr);
    IPEndPoint ep = new IPEndPoint(m_GrpAddr, 6000);
    try {
    client.Send(data, data.Length, ep);
    } catch { }
    }
    }
    }

     

    2014年10月2日 7:48