日期:2014-05-18  浏览次数:21807 次

c# udp可不可以跨网段发送广播?
同一个路由下分的多网段,我在1网段网段发送的广播,1网段可以接受到,但是在2网段接受不到,请问应该怎么写?

初始化Udp广播代码如下:

  EndPoint ipAny = new IPEndPoint(IPAddress.Any, port);
  Socket localSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
  localSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true);
  localSocket.Bind(ipAny);
  localSocket.BeginReceiveFrom(buffer, 0, buffer.Length, SocketFlags.None, ref ipAny, new AsyncCallback(GetMsgbyUpd), null);

------解决方案--------------------
只能对同一子网内部广播, 广播数据包不经过路由器.
------解决方案--------------------
楼上的都说的很对,这个和什么编程语言没有关系,udp怎么能发到别的网段里面去呢。。。。除非做映射,采取一定的手段才能实现这个功能。具体怎么做我也不是太懂。