This week's book giveaway is in the Reactive Progamming forum. We're giving away four copies of Reactive Streams in Java: Concurrency with RxJava, Reactor, and Akka Streams and have Adam Davis on-line! See this thread for details.
There is so much in your sample code, but at the same time, there is so much missing. Something has made me suspect that it is either a problem with your interface (which you haven't shown) or with the text file containing the servers details (which you haven't shown). Unfortunately I cant recall what made me think that this is the case - in reducing your code to something workable, I lost track of what the issue was.
Here is my SSCCE - the main thing is that it does not contain anything that is not needed, and it contains everything that is needed for a basic test. I have gone from your 300 lines of code, down to 60 lines of code (including the important interface). It is very hard to get anyone to look at 300 lines of code and try and work out what is wrong. It is still hard with 60 lines of code, but it is a little easier.
And the client:
Based on this code, I would recommend you try setting up a known server. Hard code the IP addresses for now. See if that works. If it does not work, then you may have firewall issues. If it does, then the problem is elsewhere. But you can slowly add to the code to get to the point where there is a problem, then try to build an SSCCE based on that problem.
Note that in addition to the overall problem of just getting your code to work as designed, it also has faulty logic. You are not calculating ping times.