so it is just
snd(data, 0); // or 1
If there is no immediate response expected from the server it's 0
If there to be a response it's 1 for the GetLine()
That way there is no time lost.
AFAIK there is almost no overhead for the threads, servers and clients when no data is being transferred.
polling, timeout, etc. I like to stay away from if possible.