/****************************************************************
 *                                                              *
 *  LIBDIST V1.0						*
 *  comm-client.c -- test communication primitives              *
 *                                                              *
 *  Last changed: 01.12.98                                      *
 *  Author: Frank Kargl                                         *
 *                                                              *
 *  Restrictions: works only for Solaris 2.6 or above           *
 *                                                              *
 ****************************************************************/

#include "libdist.h"
#include "config.h"

/* send data to comm-test and display reply */

int main(int argc,char *argv[]) {

    int cliesock;	/* Client socket */
    char *ptr;		/* dummy ptr */

    if (argc!=3) {
	fprintf(stderr,"Usage: comm-client <host> <port>\n");
	exit(1);
    }

    /* connect the server */
    if (!(cliesock=dl_sck_connect(argv[1],argv[2],DL_SCK_TCP))) {
	printf("\nERROR CONNECTING TO SERVER\n\n");
	return(1);
    }

    /* now send a real big string with many lines */
    dl_sck_send(cliesock,"Dies ist eine immens lange Zeile Nummer 1\r\n"\
	                     "Dies ist eine immens lange Zeile Nummer 2\r\n"\
	                     "Dies ist eine immens lange Zeile Nummer 3\r\n"\
	                     "Dies ist eine immens lange Zeile Nummer 4\r\n"\
	                     "Dies ist eine immens lange Zeile Nummer 5\r\n"\
	                     "Dies ist eine immens lange Zeile Nummer 6\r\n"\
	                     "Dies ist eine immens lange Zeile Nummer 7\r\n"\
	                     "Dies ist eine immens lange Zeile Nummer 8\r\n");
	
    /* and signal end of connection */
    dl_sck_send(cliesock,"QUIT");

    /* wait for replys */
    while((ptr=dl_sck_receive(cliesock))) {
	if (ptr==NULL) {
	    printf("\nERROR READING IN SERVER\n");
	    break;
	}
	if (ptr==(char *)EOF) {
	    printf("\nEOF REACHED !\n");
	    break;
	}
	printf("STRING: %s\n",ptr);
   }

    /* close connection */
    dl_sck_close(cliesock);

    /* and exit */
    return 0;
}
