关于UDP的问题,MSDN范例也异常

dalcon 2005-08-23 09:26:54
我自己的程序不方便拿出来,而且MSDN也异常,我哭.请高手们给点建设性意见
UDP组播的接收程序
using System;

namespace Project4
{
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

public class UDPMulticastListener
{

private static readonly IPAddress GroupAddress =
IPAddress.Parse("239.255.8.0");
private const int GroupPort = 5859;

private static void StartListener()
{
bool done = false;

UdpClient listener = new UdpClient();
IPEndPoint groupEP = new IPEndPoint(GroupAddress,GroupPort);

try
{
listener.JoinMulticastGroup(GroupAddress); //无论如何都过不去
listener.Connect(groupEP);

while (!done)
{
Console.WriteLine("Waiting for broadcast");
byte[] bytes = listener.Receive( ref groupEP);

Console.WriteLine("Received broadcast from {0} :\n {1}\n",
groupEP.ToString(),
Encoding.ASCII.GetString(bytes,0,bytes.Length));
}

listener.Close();

}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}

}

public static int Main(String[] args)
{
StartListener();

return 0;
}
}

}


listener.JoinMulticastGroup(GroupAddress)~~~~~~~~~~这个毒瘤,我发送程序可以绕过去,接收可就是绕不了
...全文
131 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ekinwt 2005-08-24
  • 打赏
  • 举报
回复
对.多播需要路由的支持...所以如果项目需要可靠性,不建议使用多播...
anbeel 2005-08-24
  • 打赏
  • 举报
回复
可能需要路由器的支持!

JoinMulticastGroup 方法将 UdpClient 预订到使用指定 IPAddress 的多路广播组中。调用 JoinMulticastGroup 方法后,基础 Socket 将 Internet 组管理协议 (IGMP) 包发送到路由器,请求成为多路广播组成员。多路广播地址的范围从 224.0.0.0 到 239.255.255.255。如果指定的地址在此范围之外,或者所请求的路由器不支持多路广播,则 UdpClient 将引发 SocketException。如果收到 SocketException,请使用 SocketException.ErrorCode 获取具体的错误代码。获取该代码后,可以参考 MSDN 中的 Windows Socket Version 2 API(Windows 套接字第 2 版 API)错误代码文档以获取有关错误的详细说明。timeToLive 参数指定在丢弃多路广播数据报之前所允许的路由器跳数。一旦 UdpClient 在路由器中被列入到多路广播组的成员,它就能够接收发送到指定 IPAddress 的多路广播数据报了
lionelwy 2005-08-23
  • 打赏
  • 举报
回复
up
dalcon 2005-08-23
  • 打赏
  • 举报
回复
顶,召唤高手

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧