#include <sys/file.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <errno.h>

#define SA struct sockaddr

char strf[64] = "0004test0000000006test\r\n";
char back[64];
char casthost[64] = "139.126.48.80";
struct hostent *hp;
struct sockaddr_in sin;

main () {
int s, i;

/* stream to server */

if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
perror ("Socket error.\n");
exit (11); 
}

memset (&sin, 0, sizeof(sin));
sin.sin_family=AF_INET;
sin.sin_port=htons(6711);
inet_pton(AF_INET, casthost, &sin.sin_addr);

for (i=0; (connect (s, (struct sockaddr *) &sin, sizeof(sin)) < 0) && (i<7); i++){
if (i==6) {
printf("Unable to connect to server.  Please make sure you are connected to the network or try again later.  \n");
exit (12);
}
}

send (s, strf, strlen(strf), 0);
write(1, strf, strlen(strf));

recv(s, back, 16, 0);
write(1, back, strlen(back));
close(s);

printf("back: \"%s\"\n", back);
printf("out string: %s", strf);

exit(0);
}

/* begin functions */

int inet_pton(int family, const char *strptr, void *addrptr)
{
if (family == AF_INET) {
struct in_addr in_val;
if (inet_aton(strptr, &in_val)) {
memcpy (addrptr, &in_val, sizeof(struct in_addr));
return(1);
}
return(0);
}
errno = EAFNOSUPPORT;
return (-1);
}


