请高手帮我看看问题出在什么地方!我以下代码是用组播技术实现本地机向 用无线网卡上网的主机发信息,在局域网可以实现信息发送,但无法实现我所希望的要求。代码只上传了主要部分//发送端
static void Main(string[] args)
        {
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            IPEndPoint ipe = new IPEndPoint(IPAddress.Any, 1000);
            IPEndPoint ipe2 = new IPEndPoint(IPAddress.Parse("224.168.100.2"), 2000);
            socket.Bind(ipe);                    
            socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse("224.168.100.2")));
            socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 100);
            Console.WriteLine("等待连接");
            try
            {
                string filename = @"e:\inter\mytest.txt";
                FileStream fs = File.OpenRead(filename);
                byte[] data = new byte[1024];
                while (true)
                {                    while ((fs.Read(data, 0, data.Length) > 0))
                    {                        socket.SendTo(data, ipe2);                    }                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }            socket.Close();
        }
//接收端
 static void Main(string[] args)
        {
            Socket socket =new  Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            Console.WriteLine("准备接收文件");
            IPEndPoint ipe = new IPEndPoint(IPAddress.Any, 2000);
            socket.Bind(ipe);
            EndPoint ep = (EndPoint)ipe;
            socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse("224.168.100.2")));
            
            int sockopt = (int)socket.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout);
            socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 0);
            sockopt = (int)socket.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName. ReceiveTimeout);
            Console.WriteLine("Timeout:{0}", sockopt);
            
            byte[] data = new byte[1024];
            
            while (true)
            {
                try
                {
                    int recv = socket.ReceiveFrom(data, ref ep);
                    string stringdata = Encoding.Default.GetString(data, 0, recv);
                    Console.WriteLine("data received from;{0}", ep.ToString());
                    Console.Write(stringdata);
                   
                }
                catch (SocketException)
                {
                    Console.WriteLine("Error receiving message!");
                   
                    //return; 
                }           }
           string welcome = "connect successfully!";
           data = Encoding.Default.GetBytes(welcome);
           socket.SendTo(data, data.Length,SocketFlags.None, ep);
           socket.Close();
         }