COMSTACK stack; char *buf = 0; int size = 0, length_incoming; char *protocol_package; int protocol_package_length; char server_address_str[] = "myserver.com:2100"; void *server_address_ip; int status; stack = cs_create(tcpip_type, 1, PROTO_Z3950); if (!stack) { perror("cs_create"); /* use perror() here since we have no stack yet */ exit(1); } server_address_ip = cs_addrstr (stack, server_address_str); status = cs_connect(stack, server_address_ip); if (status != 0) { cs_perror(stack, "cs_connect"); exit(1); } status = cs_put(stack, protocol_package, protocol_package_length); if (status) { cs_perror(stack, "cs_put"); exit(1); } /* Now get a response */ length_incoming = cs_get(stack, &buf, &size); if (!length_incoming) { fprintf(stderr, "Connection closed\n"); exit(1); } else if (length_incoming < 0) { cs_perror(stack, "cs_get"); exit(1); } /* Do stuff with buf here */ /* clean up */ cs_close(stack); if (buf) free(buf);