C# C“如何获取开放列表”;TcpListeners“;

C# C“如何获取开放列表”;TcpListeners“;,c#,networking,C#,Networking,我想在我的一个游戏中添加多层支持,因此我创建了一个“创建服务器”按钮,用于打开一个TcpListener并侦听连接请求,还有一个“加入服务器”按钮,我希望此按钮显示所有打开的TcpListener的列表(以便用户可以单击它们并连接) c#中是否有任何内置函数?不幸的是,此功能在IP或TCP规范中。IP和TCP都不提供任何“服务定位器”类型的功能 要实现此功能,您需要让运行服务器的玩家通过某种方式将其连接信息(ip地址/端口号)广播给寻找游戏的其他玩家。传统上,这是通过主机/协调服务器来完成的,该

我想在我的一个游戏中添加多层支持,因此我创建了一个“创建服务器”按钮,用于打开一个TcpListener并侦听连接请求,还有一个“加入服务器”按钮,我希望此按钮显示所有打开的TcpListener的列表(以便用户可以单击它们并连接)
c#中是否有任何内置函数?

不幸的是,此功能在IP或TCP规范中。IP和TCP都不提供任何“服务定位器”类型的功能


要实现此功能,您需要让运行服务器的玩家通过某种方式将其连接信息(ip地址/端口号)广播给寻找游戏的其他玩家。传统上,这是通过主机/协调服务器来完成的,该服务器发布可用游戏的信息。

不幸的是,这项功能在IP或TCP规范中有所体现。IP和TCP都不提供任何“服务定位器”类型的功能


要实现此功能,您需要让运行服务器的玩家通过某种方式将其连接信息(ip地址/端口号)广播给寻找游戏的其他玩家。这通常是通过主机/协调服务器来完成的,该服务器发布可用游戏的信息。

您想要网络(或整个互联网)上所有机器上所有侦听器的列表吗?答案是否定的,没有内置的功能

在一个小型局域网上,您可能可以不受服务器广播的影响。在互联网出现之前,游戏通常就是这样做的

现在,他们通常连接到一个中央服务器,该服务器有一个所有托管实际游戏的服务器的列表


无论哪种方式,您都有一些工作要做。

您想要网络(或整个internet)上所有计算机上的所有侦听器的列表吗?答案是否定的,没有内置的功能

在一个小型局域网上,您可能可以不受服务器广播的影响。在互联网出现之前,游戏通常就是这样做的

现在,他们通常连接到一个中央服务器,该服务器有一个所有托管实际游戏的服务器的列表


无论哪种方式,您都有一些工作要做。

如果您仅限于局域网,您可以在您的游戏服务器正在监听的端口上进行广播,并让他们回复某种注册消息


为了防止它干扰游戏,您甚至可以将其分离,并使用一个单独的注册服务,在不同于您的游戏所监听的端口上进行监听。

如果您仅限于局域网,您可以在您的游戏服务器所监听的端口上进行广播,并让他们以某种注册方式进行回复信息


为了防止它干扰游戏,您甚至可以将其分离,并使用一个单独的注册服务,在不同于您的游戏侦听的端口上侦听。

sry我不够精确,它仅用于局域网。在这种情况下,让客户端在UDP端口上侦听,并让服务器在该端口上广播其存在。然后,客户机知道他们可以通过UDP数据包来自的地址连接回服务器。您可以在数据包中放入一些数据,例如服务器名称、游戏类型、玩家数量……sry I不够精确,它仅用于局域网在这种情况下,让客户端侦听UDP端口,并让服务器在该端口广播其存在。然后,客户机知道他们可以通过UDP数据包来自的地址连接回服务器。你可以在包里放一些数据,比如服务器名,游戏类型,玩家数量。。。