C#重用UDP端口号

以前碰到一个问题,希望能够重用UDP的端口号,但一直没有成功。
今天偶然看到一段代码,竟然可以达到目的,欣喜中记下:

IPAddress groupAddress = IPAddress.Parse( "239.0.84.11" );
Socket Listener = new Socket( AddressFamily.InterNetwork,SocketType.Dgram, ProtocolType.Udp );
Listener.SetSocketOption( SocketOptionLevel.Socket,    SocketOptionName.ReuseAddress, 1 );
Listener.Bind( new IPEndPoint( IPAddress.Any, 8411 ) );
MulticastOption multicastOption = new MulticastOption( groupAddress );
Listener.SetSocketOption( SocketOptionLevel.IP,SocketOptionName.AddMembership,multicastOption );

希望对有这个需求的TX有所帮助 :)



posted @ 2006-12-21 12:17 多米诺 阅读(2470) 评论(3) 编辑 收藏

 回复 引用 查看   
#1楼 2009-01-14 22:32 风海迷沙      
你这个代码在SendTo时报请求的地址无效,请问如何解决?
 回复 引用   
#2楼 2009-07-25 09:41 huangchena[未注册用户]
在Listener.Bind( new IPEndPoint( IPAddress.Any, 8411 ) );
绑定时就无效了
错误,以一种访问权限不允许的方式做了一个访问套接字的尝试

 回复 引用 查看   
#3楼 2009-08-20 13:28 Neoo      
为什么不直接设置SocketOptionName.ReuseAddress呢...

Listener.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.ReuseAddress, true);