局域网用socket创建服务器,客户端可以输入ip连接,但如果像cs一样服务器创建了客户端通过搜索就能发现服务端进行连接,而不用输入ip,这应该怎么实现呢?
IP地址肯定是要的,一般利用了局域网广播来通告了服务器的IP地址,可以采用如下方式:
客户端利用RARP(反向地址转换协议)协议,从路由器中的ARP表中获取客户端的IP地址。要求事先路由器中设置客户端MAC地址与客户端IP地址对应的表。
利用WCF,在服务端放置一个服务发现(service discovery)的端点,客户端就能自动发现部署了这类端点的服务,在返回的信息中就有ip地址。它是利用了ws-discovery协议。
像小区视频监控,现在有很多采用了网络摄像机,它们从质上是一个server, 对外提供实时视频流服务。它们一般以利用dhcp获得ip以接入网络,那监控客户端是怎么发现这些摄像机呢?就是利用ws-discovery协议。
他那个创建的服务端口一定是固定的,你就需要所有当前路由ipconfig。得到的默认网关值,然后根据这个值,一般从1-254,这样的IP搜索,得到所有服务器主机的位置,然后尝试连接,可以连接到,就说嘛打开了的。。就这样。