If you're developing non-blocking applications, you have to deal with events.
int ZOOM_event (int no, ZOOM_connection *cs);
The ZOOM_event executes pending events for a number of connections. Supply the number of connections in no and an array of connections in cs (cs ... cs[no-1]). A pending event could be a sending a search, receiving a response, etc. When an event has occurred for one of the connections, this function returns a positive integer n denoting that an event occurred for connection cs[n-1]. When no events are pending for the connections, a value of zero is returned. To ensure that all outstanding requests are performed call this function repeatedly until zero is returned.