5,941
社区成员
发帖
与我相关
我的任务
分享一个应用设定idudpserver接收信息和idudpclient发送信息,A客户端先运行,B客户端后运行,A客户端通过UDPread可以收到B的信息(IP),但B却收不到A的IP信息,也就是如何能使后运行的客户端也知道以前运行的客户端的IP信息(广播信息没有问题)?
当然,都运行后都发一条广播,相互就都能获取IP信息,但不现实。
我通过连接数据库也能取得IP信息,但我想知道UDP下有没有类似的可以检测获取所有已运行且指定同一个(或不同)PORT的客户端IP信息?
不知道我说的是不是清楚?
网上的很多代码确实不太实用了。
研究了几天,终于搞明白几个问题了,D10.4自带的indy真是改动很大,和以前的版本差的很多,也简单了很多。
研究网上的实例,基本上都不能正常运行,广播、多播的设置比以前简单的不能再简单了,但网上实例一个比一个复杂。
阿弥陀佛
局域网?对等连接,没有server?这样的话,可以每个客户端启动时发一条广播,但是要指定端口,也就是客户端监听广播的端口(每个客户端要监听0.0.0.0:port),消息中报告自己的IP和UDP接收端口,其他客户端收到广播之后应答,这样就互相知道其他客户端的存在了。更进一步,广播消息中可以设置若干类型的消息,诸如“我上线啦”、“我下线了”等等,以便客户端保持在线用户列表。
当然更好的方法是设置一个server,这样在广域网上也可用。