<article>
<title>YAZ User's Guide and Reference
<author><htmlurl url="http://www.indexdata.dk/" name="Index Data">, <tt><htmlurl url="mailto:info@indexdata.dk" name="info@indexdata.dk"></>
-<date>$Revision: 1.7 $
+<date>$Revision: 1.10 $
<abstract>
This document is the programmer's guide and reference to the YAZ
package. YAZ is a compact toolkit that provides access to the
<sect>The COMSTACK Module<label id="comstack">
+<sect1>Synopsis (blocking mode)
+
+<p>
+
+<tscreen><verb>
+
+COMSTACK *stack;
+char *buf = 0;
+int size = 0, length_incoming;
+char *protocol_package;
+int protocol_package_length;
+char server_address[] = "myserver.com:2100";
+int status;
+
+stack = cs_create(tcpip_type, 1, PROTO_Z3950);
+if (!stack) {
+ perror("cs_create"); /* note use of perror() here since we have no stack yet */
+ exit(1);
+}
+
+status = cs_connect(stack, server_address);
+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);
+
+</verb></tscreen>
+
<sect1>Introduction
<p>
<tscreen><verb>
Index Data Aps
-KĂžbmagergade 43
+Købmagergade 43
DK-1150 Copenhagen K
</verb></tscreen>