我的想法是每个用户上线后,开启一个子线程,在子线程中开启一个udp socket等待接收数据包。
获取在线人数的一方在进行查询申请后,建立一个udp socket进行广播,广播后建立一个udp socket,在while中进行接收数据。其他用户收到这个数据包后,再建立一个udp socket发回给广播方。已达到统计人数的目的。
现在这个方法存在的问题是广播方的那个while循环不能够正常退出。假设局域网中特定端口上有3个用户打开了连接,广播方的while中会一直等待第四个用户发来的数据,不知道这个问题有没有好的解决办法?
------------------------------------------------------------------------------------------------------
我还有一个想法就是广播方通过不断地进行建立TCP连接的尝试确定在线人数,不过这个方法感觉在规模大的时候比较耗时。不知道这种方法怎么样呢?
------------------------------------------------------------------------------------------------------
或者是有其他什么好办法来实现吗?