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

编写一个聊天程序(和很多人一样),我发现我希望能够使客户端自动连接到服务器.

但是,服务器的IP地址不会是永久的,因此我不能仅将其硬核到程序中

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

有任何想法吗?

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

解决方法:

如果您正在谈论局域网中的聊天,并且由于某种原因而不想或不想使用DNS,则可以实现或找到UPnP使用的发现协议的实现. SSDP基于UDP广播. afaik不可能通过TCP进行多播,因为TCP需要会话.

如果要通过Internet使用聊天服务器,则只能使用DNS.寻找一个动态的dns提供程序(我使用selfhost.bz).然后,在C#中,您可以将主机名解析为IP地址,如其他答案所述.但是,如果您要连接的主机名足以将其传递给套接字,则:

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

编辑:由于您说自己在局域网中,所以有关SSDP的更多详细信息.该协议比您实际需要做的更多.如果您想自己实现它,请不要完全坚持.只需让您的客户在指定端口上发送广播即可.一旦服务器接收到一条消息,它便会永久侦听该端口,并以预定义的消息进行应答.当客户端收到该答案时,它将知道发件人是有效的服务器.

标签:tcp,networking,ip,c

来源: https://codeday.me/bug/20191127/2075489.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值