如何找到分配给UDP客户端的端口号(在.net/C#中)?如果我使用varsocket=newUdpClient(0,AddressFamily.InterNetwork);创建套接字那我怎么找到套接字的端口呢?我可能很愚蠢,但我在MSDN/Google上没有运气(可能是因为周五凌晨4:42,阳光明媚)。背景:我想做的是找到一个开放端口,然后向另一个进程报告,以便在该端口上向我转发消息。可能有多个客户端,所以我不想使用固定端口。谢谢。UdpClient是Socket类的包装器,它通过LocalEndPoint属性公开它绑定到的端点。由于您使用的是UDP/IP客户端,因此它是一个具有所需端口属性的IPEndPoint:intport=((IPEndPoint)socket.Client.LocalEndPoint).Port;对于那些需要使用RAW套接字的人(比如我),这里是解决方法。目标:在知道系统选择的端口的任意端口上创建一个RAWUDP套接字。预期:(socket.LocalEndPointasIPEndPoint).Port问题解决:创建一个普通的DGRAMUDP套接字绑定这个套接字以找出它的端口关闭那个普通套接字创建RAWUDP套接字警告:代码:上面那是C#学习教程:如何找到分配给UDP客户端的端口号(在.net/C#中)?如果分享的内容对你有用,需要了解更多C#学习教程,希望你多多关注——publicSocketCreateBoundRawUdpSocket(refIPEndPointlocal){if(0==local.port){Socketwasted=newSocket(local.AddressFamily,SocketType.Dgram,ProtocolType.Udp);浪费。绑定(本地);local.Port=(wasted.LocalEndPointasIPEndPoint).Port;浪费了。关闭();}套接字目标=新套接字(本地。AddressFamily,SocketType.Raw,ProtocolType.Udp);目标。绑定(本地);回归目标;}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
