<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.8 $
+<date>$Revision: 1.9 $
<abstract>
This document is the programmer's guide and reference to the YAZ
package. YAZ is a compact toolkit that provides access to the
<p>
<tscreen><verb>
-int connect_and_init() {
+
+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