I'm using CFSocket to connect/listen for connections and it works
pretty great.
But I do have a problem sending data. If I call CFSocketSendData
several times (in a row, basically), it often seems like some data
gets truncated. Is this because CFSocket doesn't have enough time
to send data before I send some more?
I tried 'subscribing' to the kCFSocketWriteCallBack callback, and
ran a run loop with a timer checking if that callback had been
called, and if so, stop the loop. But the callback never fired
until the main app loop ran (I'm writing a plug-in so I don't have
control over the main app).
What's the best way to solve this? Can I somehow wait for CFSocket
to finish sending before continuing?
Probably the easiest thing is to use CFStream et al., which handle
this for you.