在XP上使用Multicast的C#SocketException
发布时间:2020-12-14 02:02:16 所属栏目:Windows 来源:网络整理
导读:以下C#代码在Vista上正常运行,但在XP上失败: SocketException:提供了无效的参数. ErrorCode是10022. XP上的防火墙已被禁用. using System;using System.Net;using System.Net.Sockets;public class SocketTest{ [STAThread] public static void Main() { M
以下C#代码在Vista上正常运行,但在XP上失败:
SocketException:提供了无效的参数. ErrorCode是10022. XP上的防火墙已被禁用. using System; using System.Net; using System.Net.Sockets; public class SocketTest { [STAThread] public static void Main() { MySocket s = new MySocket(); Console.WriteLine("done"); Console.ReadLine(); } public class MySocket : Socket { public const ushort SocketTtl = 4; public const string Address = "239.255.255.250"; public IPAddress IPAddress = IPAddress.Parse(Address); public MySocket() : base(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp) { SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.Broadcast,true); SetSocketOption(SocketOptionLevel.IP,SocketOptionName.MulticastTimeToLive,SocketTtl); // This line throws SocketException: An invalid argument was supplied // SocketException.ErrorCode: 10022 SetSocketOption(SocketOptionLevel.IP,SocketOptionName.AddMembership,new MulticastOption(IPAddress)); } } } 有任何想法吗? 解决方法
在设置SocketOptionName.AddMembership选项之前,需要将套接字绑定到接口.
编辑:刚刚在MSDN文档中验证了这一点(尽管它只说到NT4):
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows – 如何解决函数GsDriverEntry中引用的LNK2019未解
- 新建的模态窗口失去了重点,在Windows Vista中变得无法使用
- Skype URI无法在iOS 9中运行
- Windows网络连接 – 字节或数据包?
- 添加存储在windows批处理脚本中的变量中的数字
- 如何在Windows上提供控制台输入(是/否)作为批处理文件的一部
- Windows 下的 PHP-PEAR 安装方法
- 将现有的DotNetNuke门户迁移到windows azure
- 是否有适用于Windows的C免费和快速(可能是独立的)重构工具?
- windows-server-2003 – 是什么原因导致winsock 10055错误?
推荐文章
站长推荐
- windows-server-2012 – 防止Windows Server 201
- windows – 如何尽可能快地创建CreateFile
- windows-phone-7 – 是否可以检查位置服务是否有
- windows-phone-8 – Windows Phone 8.1 – MVVML
- Windows – Win32 ToolTip消失,永远不会重新出现
- caliburn.micro – 使用Caliburn Micro 2和Windo
- 有一个WPF与System.Windows.Forms.Screen等同吗?
- windows7 、windows10环境使用pip 安装Tensorflo
- 如何将十六进制字符串转换为Uint8Array并返回Jav
- windows-server-2008-r2 – Windows Server 2008
热点阅读