.net 自发现服务器问题

sfvcdgdf 2015-01-19 04:12:26
有一项目需要连接服务器交互数据,但是客户端部分想做到不用配置服务器IP的效果,例如我现在并不知道服务器IP是多少,域名什么的都 不知道,请问客户端怎么实现查找服务器的功能?好像听说过是什么服务器自动发现协议的,但不太懂,有懂这个的高手吗?
...全文
141 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
於黾 2015-01-21
  • 打赏
  • 举报
回复
引用 13 楼 sfvcdgdf 的回复:
[quote=引用 10 楼 Z65443344 的回复:] [quote=引用 9 楼 sfvcdgdf 的回复:] 看来局域网内好像还是得用UDP的方式,在局域网发送udp广播包,客户端接收提取服务器地址这样,看了一下那个WCF-Discovery的,好像很复杂
思路不对 不是服务器不断的向客户端广播 而是客户端想要找服务器的时候,发个广播,然后服务器单独对这个客户端进行应答[/quote]对的,应该是这样,但是服务器通过UDP获取客户端发送上来的信息之后,通过ref获取的客户端IPEndpoint对象,然后通过这个对象返回信息,客户端接受不了,但是服务端获取客户端发送上来的信息之后通过广播再发送出去,客户端可以收到[/quote] 说明要么你服务端获取客户端IP有问题,要么就是客户端侦听UDP绑定的端口号不对
assky124 2015-01-20
  • 打赏
  • 举报
回复
可以搜搜 WCF-Discovery 底层估计也是UDP
於黾 2015-01-20
  • 打赏
  • 举报
回复
别的方法就参考域名服务器 你先请求一个一定能够访问到的服务器,然后它给你返回其他服务器的IP
sfvcdgdf 2015-01-20
  • 打赏
  • 举报
回复
我想问一下各位高手,除了udp广播这种形式,还有别的方法么?
sfvcdgdf 2015-01-20
  • 打赏
  • 举报
回复
引用 10 楼 Z65443344 的回复:
[quote=引用 9 楼 sfvcdgdf 的回复:] 看来局域网内好像还是得用UDP的方式,在局域网发送udp广播包,客户端接收提取服务器地址这样,看了一下那个WCF-Discovery的,好像很复杂
思路不对 不是服务器不断的向客户端广播 而是客户端想要找服务器的时候,发个广播,然后服务器单独对这个客户端进行应答[/quote]对的,应该是这样,但是服务器通过UDP获取客户端发送上来的信息之后,通过ref获取的客户端IPEndpoint对象,然后通过这个对象返回信息,客户端接受不了,但是服务端获取客户端发送上来的信息之后通过广播再发送出去,客户端可以收到
assky124 2015-01-20
  • 打赏
  • 举报
回复
WCF就是配置比较繁琐,功能还是很强大的。 http://www.cnblogs.com/artech/archive/2011/10/07/WS-Discovery.html 照葫芦画瓢,简单实现肯定没啥问题的
tcmakebest 2015-01-20
  • 打赏
  • 举报
回复
楼主的自动发现,就是广播的一种使用方式,如果不在局域网当然是不行的. 有一个比较好的办法就是服务器自动注册,代替客户端自动发现.当然需要一台双方都能访问的中间服务器保存数据.
於黾 2015-01-20
  • 打赏
  • 举报
回复
引用 9 楼 sfvcdgdf 的回复:
看来局域网内好像还是得用UDP的方式,在局域网发送udp广播包,客户端接收提取服务器地址这样,看了一下那个WCF-Discovery的,好像很复杂
思路不对 不是服务器不断的向客户端广播 而是客户端想要找服务器的时候,发个广播,然后服务器单独对这个客户端进行应答
sfvcdgdf 2015-01-20
  • 打赏
  • 举报
回复
看来局域网内好像还是得用UDP的方式,在局域网发送udp广播包,客户端接收提取服务器地址这样,看了一下那个WCF-Discovery的,好像很复杂
  • 打赏
  • 举报
回复
你弄个文本文件,里边写上你想让比别人(程序)看见的文字,然后让人看的见这个文件就“发现”了。
  • 打赏
  • 举报
回复
引用 5 楼 assky124 的回复:
可以搜搜 WCF-Discovery 底层估计也是UDP
晕。给全世界的电脑发信息吗?
sfvcdgdf 2015-01-19
  • 打赏
  • 举报
回复
引用 1 楼 Z65443344 的回复:
如果是局域网里应用,可以使用UDP广播 如果是互联网应用,劝你还是把服务器域名写死在代码里好了
是的,暂时只考虑局域网内的这种情况,看来只能用udp这种形式了
於黾 2015-01-19
  • 打赏
  • 举报
回复
如果是局域网里应用,可以使用UDP广播 如果是互联网应用,劝你还是把服务器域名写死在代码里好了

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧