gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 03:22:30 24 4
gpt4 key购买 nike

我有两个 Windows 窗体应用程序,一个充当服务器(即 Winform: 服务器角色),另一个充当客户端(即 Winform: 客户端角色) >)。在我的 LAN 设置中,有 6 台 PC,这些 PC 通过 8 端口交换机相互连接,并且每台 PC 都有多个 LAN 卡。

有一台 PC 运行 [Winform:服务器角色],另外五台 PC 运行 [Winform:客户端角色]。在[Winform:服务器角色]中,我使用以下代码来获取本地 IP address和端口号,[Winform:服务器角色]将根据此自动分配的 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:客户端角色]如何在运行时知道我的[Winform:服务器角色]IP地址和端口号?

我需要澄清我的意图。我目前的意图可能不正确。我尝试创建一个“零配置客户端-服务器网络”,即即插即用。服务器将知道客户端在哪里,反之亦然。我知道有一个程序(即 MaxiVista)已经做到了这一点。

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

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

最佳答案

嗯,他们确实没有。

您可以配置 DNS,例如yourappserver 指向您的服务器,然后让客户端连接到该服务器,但这显然有点复杂(加上对值进行硬编码并不是执行此操作的好方法)。

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

(在紧要关头,您可以让服务器向网络广播其存在并让客户端监听此类广播,但随后您基本上是在重新实现 mDNS)

关于.net - 如何获取.NET分配的IP地址和端口号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6178587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com