当前位置: 首页 > 编程语言 > C#

在网络共享中查找开放的TCP端口

时间:2023-04-10 21:58:23 C#

在网络中查找开放的TCP端口我正在尝试构建网络应用程序。我成功地制作了一个发送和接收包的服务器。到目前为止,测试是在一台指向127.0.0.1的计算机上完成的(没有像家里那样的地方)。现在我想切换到网络。我如何找到哪台计算机正在侦听LAN网络上我的特定端口?该服务需要在已知端口上侦听广播消息(如果你想表现得非常好,可以向IANA注册程序和端口号),当它听到广播消息时,它会用服务器的IP回复发件人服务侦听传入连接的端口。以下是上面链接中的一个简单示例,它仅打印到连接的控制台和端口,但您可以使用此信息在两个端点之间建立TCP或UDP连接。使用System.Net;使用System.Net.Sockets;使用系统文本;classRecvBroadcst{publicstaticvoidMain(){Socketsock=newSocket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);iep=newIPEndPoint(IPAddress.Any,9050);sock.Bind(iep);终点ep=(终点)iep;Console.WriteLine("准备接收……");字节[]数据=新字节[1024];intrecv=sock.ReceiveFrom(data,refep);字符串stringData=Encoding.ASCII.GetString(数据,0,recv);Console.WriteLine("received:{0}from:{1}",stringData,ep.ToString());数据=新字节[1024];recv=sock.ReceiveFrom(data,refep);stringData=Encoding.ASCII.GetString(数据,0,recv);Console.WriteLine("收到:{0}来自:{1}",stringData,ep.ToString());袜子。关闭();作为一个psudo示例,这里是我将如何做的事件序列。对于此示例,假设我们的网络IP为192.168.1.0,子网为255.255.255.0。我们有两台服务器,Server1在192.168.1.2,服务监听端口1234,Server2在192.168.1.3,服务端口4567。两者都在端口3000上列出广播消息。客户端连接将在IP192.168.1.4上。以上就是C#学习教程:找到网络中开放的TCP端口,分享全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——customer客户端在动态端口范围(49152-65535)中随机选择一个端口绑定并监听UDP(在本例中为端口50123)。客户端使用他正在侦听的同一端口向其本地子网(192.168.1.255:3000)的广播地址和已知端口进行广播。他发送某种有效负载,因此服务器只发回给您的客户端,而不是碰巧与您使用相同端口的任何其他人。(假设它发送字符串SendmeyourinfoforXYZapp!)Server1接收广播。检查消息是否为向我发送您的XYZ应用程序信息!并发送UDP消息Name:Server1IP:192.168.1.2Port:1234返回发件人源端口和IP组合(192.168.1.4:50123)Server2也接收广播。检查消息是否为向我发送您的XYZ应用程序信息!并发送一个UDP报文Name:Server2IP:192.168.1.3Port:4567报文返回发送者的源端口和IP组合(192.168.1.4:50123)客户端发送相同的报文,端口上收到两个UDP报文。他解析回复并向用户显示可用于连接的两个服务器。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: