You have to implement the socket:didWriteDataWithTag:
delegate method.
From "GCDAsyncSocket.h":
/**
* Called when a socket has completed writing the requested data. Not called if there is an error.
**/
- (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag;
If the write times out then the connection is closed and the delegate method
- (void)socketDidDisconnect:(GCDAsyncSocket *)sock withError:(NSError *)err;
is called.