int main(int argc, char *argv[]) { zmq::context_t * ctx = new zmq::context_t(1); zmsg *request = new zmsg(); request->body_set("Hello"); zmsg *reply = NULL; int endpoints = argc - 1; if (endpoints == 0) std:: cout << "Error: syntax should be " << argv[0] << " <endpoint> ... \n"; else if (endpoints == 1) { int retries; for (retries = 0; retries < MAX_RETRIES; retries++) { char *endpoint = argv[1]; reply = retry_request(ctx, endpoint, request); if (reply) { std::cout << "received reply from server 1\n"; break; } std:: cout << "No response from " << endpoint << ", retrying...\n"; } } else { int i; for (i = 0; i < endpoints; i++) { char *endpoint = argv[i + 1]; reply = retry_request(ctx, endpoint, request); if (reply) { std::cout << "received reply from server " << i + 1 << "...\n"; break; } std::cout << "No response from " << endpoint << std::endl; } } if (reply) std::cout << "Service is running OK\n"; request->clear(); reply->clear(); ctx->close(); return 0; }
void read_request() { if (process_request()) { retry_request(); return; } client.request->retries = 0; if (!client.request->done) { add_read_socket(client.socket->fd); return; } client.socket->buf = NULL; client.response = new_response(client.request); parse_path(client.request); add_write_socket(client.response->socket->fd); return; }