jjzjj

IPEndPoint

全部标签

c# - 如何在 c# 中跨本地网络进行 UDP 多播?

我正在尝试在我的本地网络上进行一些简单的UDP通信。我想做的就是对网络上的所有机器进行多播这是我的发送代码publicvoidSendMessage(stringmessage){vardata=Encoding.Default.GetBytes(message);using(varudpClient=newUdpClient(AddressFamily.InterNetwork)){varaddress=IPAddress.Parse("224.100.0.1");varipEndPoint=newIPEndPoint(address,8088);udpClient.JoinMult

c# - 向所有可用网卡广播 UDP 消息

我需要向特定IP和端口发送UDP消息。由于有3张网卡,10.1.x.x10.2.x.x10.4.x.x当我发送一条UDP消息时,我只在一个网络适配器中接收消息...其余的ip没有接收到。我想在发送消息时检查网络适配器。我该怎么做?目前我使用的是:IPEndPointlocalEndPoint=newIPEndPoint(IPAddress.Parse(LocalIP),0);IPEndPointtargetEndPoint=newIPEndPoint(TargetIP,iTargetPort);UdpClientsendUdpClient=newUdpClient(localEndPo

c# - 从主机名创建 IPEndPoint

我正在使用需要“IPEndPoint”的第三方dll。由于用户可以输入IP地址或主机名,因此我需要先将主机名转换为IP地址,然后才能创建IPEndPoint。在.net中是否有任何功能可以执行此操作,或者我是否必须编写自己的DNS查找代码? 最佳答案 System.Net.Dns.GetHostAddressespublicstaticIPEndPointGetIPEndPointFromHostName(stringhostName,intport,boolthrowIfMoreThanOneIP){varaddresses=Sy

c# - TCP 客户端无法使用框架 4.6.1 绑定(bind)到套接字中的端口 0

我有一个正在运行的应用程序,它使用套接字通信连接到某个端口上的服务器。我已将该应用程序从框架2.0(VisualStudio)移植到框架4.5,并顺利通过所有中间框架。现在,使用visualstudio15和framework4.6.1,套接字不再连接。查代码发现是socket.Bind在localport为0时抛出异常的问题并且服务器只允许您的一个IP连接,您需要绑定(bind)套接字必须用来启动其连接的适配器(或IP),否则,套接字将使用随机IP或顶部的IP.注释“绑定(bind)”会正常工作,但我们无法指定其他本地IP进行连接。遗憾的是,我的IP不是默认选择的IP,所以我无法再在

c# - 从广播收到UDP包后获取客户端IP

目前我正在开发一个设备查找器,我真的很难处理代码,因为通常我会编写微Controller代码。我希望有人能帮助我。目标是从UDP广播接收客户端IP到制造商特定端口。这对我来说很好用。我发送广播并取回从设备发送的数据:00-00-00-F7-00-20-A0-06-58-39-30-12-63-16-00-00-62-A7-52-0B-FF-00-00-00-00-80-A3-BE-2F-XX它包括设备的MAC地址(最后6个十六进制片段)但是我找不到发件人(客户端)的IP地址我怎样才能保存从客户端发送的整个包装?包括IP?因为在Wireshark中我看到了整个包(发送自:192.xxx.

c# - 套接字 - IPEndpoint 端口(最大值)

当我进行绑定(bind)时,我可以在我的套接字上分配的端口的最大值是多少?例子:intport=0;//Howfarcanigo?Socketm_mainSocket;m_mainSocket.Bind(newIPEndPoint(IPAddress.Parse("127.0.0.1"),port)) 最佳答案 IP端口号是16位无符号整数。因此,65,535是您可以分配的最大端口号。IPEndPoint的文档constructor指出如果端口大于MaxPort,将引发ArgumentOutOfRangeException.MaxP

sockets - 如何进行 TCP 打洞?

问题如下。这是我当前没有成功的测试代码。staticvoidMain(string[]args){if(args.Count()!=3){Console.WriteLine("Badargs");}varep=newIPEndPoint(IPAddress.Parse(args[0]),int.Parse(args[1]));varlp=newIPEndPoint(IPAddress.Any,int.Parse(args[2]));vars=newSocket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

C# UDP 套接字 : Get receiver address

我有一个异步UDP服务器类,其套接字绑定(bind)在IPAddress.Any上,我想知道接收到的数据包发送到(...或接收到)哪个IP地址。看来我不能只使用Socket.LocalEndPoint属性,因为它总是返回0.0.0.0(这是有道理的,因为它绑定(bind)到那个...)。以下是我目前使用的代码中有趣的部分:privateSocketudpSock;privatebyte[]buffer;publicvoidStarter(){//SetupthesocketandmessagebufferudpSock=newSocket(AddressFamily.InterNetw

C# UDP 套接字 : Get receiver address

我有一个异步UDP服务器类,其套接字绑定(bind)在IPAddress.Any上,我想知道接收到的数据包发送到(...或接收到)哪个IP地址。看来我不能只使用Socket.LocalEndPoint属性,因为它总是返回0.0.0.0(这是有道理的,因为它绑定(bind)到那个...)。以下是我目前使用的代码中有趣的部分:privateSocketudpSock;privatebyte[]buffer;publicvoidStarter(){//SetupthesocketandmessagebufferudpSock=newSocket(AddressFamily.InterNetw

c# - Json.Net - 从 'ScopeId' 上的 'System.Net.IPAddress' 获取值时出错

我正在尝试使用Json.Net序列化IPEndpoint对象,但出现以下错误:从“System.Net.IPAddress”上的“ScopeId”获取值时出错。错误的原因是我只使用端点中IPAddress对象的IPV4属性。当Json解析器尝试解析IPv6部分时,它会访问ScopeID属性,该属性会引发套接字异常“所引用的对象类型不支持尝试的操作”(null足以满足微软的要求!)我想知道除了将所有内容分开并将地址信息编码为字符串之外,是否有解决此问题的方法?在某些时候我确实想支持IPV6。如果IPAddress系列设置为Internetwork而不是InternetworkIPV6,是
12