gpt4 book ai didi

c# - 客户端应用程序在 C# 中的本地网络上查找服务器的最佳方式是什么?

转载 作者:可可西里 更新时间:2023-11-01 08:18:18 26 4
gpt4 key购买 nike

客户端使用 GenuineChannels 连接到服务器(我们正在考虑切换到 DotNetRemoting)。我所说的查找是获取要连接的服务器的 IP 和端口号。

似乎一种蛮力方法是尝试网络上的每个 IP 尝试事件端口(甚至不确定这是否可能),但必须有更好的方法。

最佳答案

考虑广播一个特定的 UDP 数据包。当一个或多个服务器看到广播的 UDP 数据包时,它们会发送回复。客户端可以收集来自所有服务器的回复并开始连接到它们或基于选举算法。

查看客户端示例(未经测试的代码):


using System.Net;
using System.Net.Sockets;

[STAThread]
static void Main(string[] args)
{
Socket socket = new Socket(AddressFamily.InterNetwork,
SocketType.Dgram, ProtocolType.Udp);
socket.Bind(new IPEndPoint(IPAddress.Any, 8002));
socket.Connect(new IPEndPoint(IPAddress.Broadcast, 8001));
socket.Send(System.Text.ASCIIEncoding.ASCII.GetBytes("hello"));

int availableBytes = socket.Available;
if (availableBytes > 0)
{
byte[] buffer = new byte[availableBytes];
socket.Receive(buffer, 0, availableBytes, SocketFlags.None);
// buffer has the information on how to connect to the server
}
}

关于c# - 客户端应用程序在 C# 中的本地网络上查找服务器的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/210446/

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