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

前端之家收集整理的这篇文章主要介绍了如何获取.NET分配的IP地址和端口号前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个 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)

猜你在找的VB相关文章