加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何获取.NET分配的IP地址和端口号

发布时间:2020-12-17 00:21:54 所属栏目:大数据 来源:网络整理
导读:我有两个 Windows窗体应用程序,一个用作服务器(即Winform:服务器角色),另一个用作客户端(即Winform:Client角色).在我的局域网设置中,有6台PC和这些PC通过8端口交换机相互连接,每台PC都有多个LAN卡. 有一台PC运行[Winform:服务器角色],另外五台运行[Winfor
我有两个 Windows窗体应用程序,一个用作服务器(即Winform:服务器角色),另一个用作客户端(即Winform:Client角色).在我的局域网设置中,有6台PC和这些PC通过8端口交换机相互连接,每台PC都有多个LAN卡.

有一台PC运行[Winform:服务器角色],另外五台运行[Winform:客户端角色].在[Winform:服务器角色]中,我使用以下代码获取本地IP address和端口号,[Winform:Server角色]将根据此自动分配的IP地址和端口号侦听所有传入的TCP请求.

Dim Listener As System.Net.Sockets.TcpListener
Dim Client As New System.Net.Sockets.TcpClient
Dim Message As String = ""

Private Sub Form1_Load(ByVal sender As Object,ByVal e As System.EventArgs) Handles Me.Load
    Listener = New System.Net.Sockets.TcpListener(System.Net.IPAddress.Any,0)
    Listener.Start()
End Sub

所有[Winform:Client角色]如何在运行时知道我的[Winform:Server角色] IP地址和端口号?

我需要澄清我的意图.我目前处理我的意图可能不正确.我尝试创建一个“零配置客户端 – 服务器网络”,即插件和插件.玩.服务器将知道客户端的位置,反之亦然.我知道有一个程序(即MaxiVista)已经完成了.

MaxiVista有两个应用程序,即服务器和客户端.用户只需要在指定为服务器角色的PC中执行服务器应用程序,并在另一台指定为客户端角色的PC中执行客户端应用程序.然后,服务器将能够在同一LAN中找到所有正在执行的客户端.

我的意图就是这样.在同一LAN中即插即用“零配置客户端 – 服务器网络”.

好吧,他们不是,真的.

您可以为例如配置DNS yourappserver指向你的服务器然后让客户端连接到那个,但这显然有点复杂(加上硬编码值不是一个很好的方法来做到这一点).

您可以使用的是某种服务公告 – 例如这是通过让服务器定期宣布“我是一个小服务器,短而粗壮(WhateverYourAppIsCalled在端口12345上的服务器)”以及您的客户端来监听此类请求,甚至是请求它们(“是否有服务器” WhateverYourAppIs在这里打电话?“).另见:http://en.wikipedia.org/wiki/Zero_configuration_networking#Service_discovery

(在紧要关头,你可以让服务器向网络广播它的存在并让客户端监听这样的广播,但是你基本上是在重新实现mDNS)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读