A value of 0 generally evaluates to false, and a value of non-zero evaluates to true. If you look in the function everySecond() it decrements timeout[n]; to zero then stops. Once it is zero then any test on it will evaluate as false.
if(someValue) {
....
Is the same as:
if(someValue == 0 { // [edit Ooops!, this is wrong]
if(someValue != 0 { // Should be this
...
You realise I am just getting my head around this myself?
If you wrap this:
sprintf(message, "T");
clients[clientIndex]->add(message, strlen(message));
clients[clientIndex]->send();
Into a function then I think you will be close to getting what you want. You will need to overload the function to deal with printing different variable types the way Arduino's Serial.print() does. I know very little about this though, I've not studied how it works and can't advise you.
[Edit see reply #79 from @christop, thank you for pointing out the mistake the above]