Google

NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ ">

Chapter 9. The COMSTACK Module

Synopsis (blocking mode)


    
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);