gpt4 book ai didi

c# - 自动获取服务器IP给客户端

转载 作者:可可西里 更新时间:2023-11-01 02:34:04 25 4
gpt4 key购买 nike

编写聊天程序(很多人都这样做),我发现我希望能够让客户端自动连接到服务器。

但是,服务器的 IP 地址不是永久的,所以我不能将它硬核到程序中

在 TCP 中,我正在寻找某种广播功能,让客户端知道服务器在哪里

有什么想法吗?

编辑:应该说,这将只是一个 LAN 程序 - 没有外部连接

最佳答案

如果您正在谈论 LAN 中的聊天并且出于某种原因您不能或不想使用 DNS,您可以实现或找到 UPnP 使用的发现协议(protocol)的实现。 SSDP基于UDP广播。据我所知,不可能通过 TCP 进行多播,因为 TCP 需要一个 session 。

如果您想通过互联网使用聊天服务器,您别无选择,只能使用 DNS。寻找动态 DNS 提供商(我使用 selfhost.bz)。在 C# 中,您可以将主机名解析为 IP 地址,如其他答案中所述。如果你有一个主机名可以连接到它可能足以将它传递给套接字,但是:

socket.Connect("myhostname.selfhost.bz", ...


编辑:既然你说你在局域网中,那么关于 SSDP 的更多细节。该协议(protocol)做的比您实际需要的要多。如果您正在考虑自己实现它,请不要严格遵守它。只需让您的客户在指定端口上发送广播即可。服务器永久监听该端口,一旦收到消息,就会用预定义的消息进行应答。当客户端收到该答复时,它将知道发件人是有效的服务器。

关于c# - 自动获取服务器IP给客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12537598/

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