Hi All,
I'm trying to reading in data from a file and send that data to a server, but I'm getting a data read error. Here's the following error:
$ gcc *Client* -o *Client*
udpClient.c: In function `main':
udpClient.c:76: warning: comparison between pointer and integer
Undefined first referenced
symbol in file
socket /var/tmp/cc05IzIT1.o
gethostbyname /var/tmp/cc05IzIT1.o
bind /var/tmp/cc05IzIT1.o
sendto /var/tmp/cc05IzIT1.o
inet_ntoa /var/tmp/cc05IzIT1.o
ld: fatal: Symbol referencing errors. No output written to udpClient.c
$
No output written to the client file.
Here's the code for the client file. It's a little lengthy. Any help would be appreciated:
ThanksCode:#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <netdb.h> #include <stdio.h> #include <unistd.h> #include <string.h> /* memset */ #include <sys/time.h> /* select() */ #define REMOTE_SERVER_PORT 4500 #define MAX_MSG 100 // ---------------------------------- // --------- MAIN ------------------- // ---------------------------------- int main (int argc, char *argv[]) { int sd, rc, i; struct sockaddr_in cliAddr, remoteServAddr; struct hostent *h; // Get Data FILE *data; char c; data = fopen("data.txt", "t"); // check command line arguments if (argc < 3) { printf("usage : %s <server> <data1> ... <dataN> \n", argv[0]); exit(1); } // get server IP address (no check if input is IP address or DNS name) h = gethostbyname(argv[1]); if (h == NULL) { printf("%s: unkown host '%s' \n", argv[0], argv[1]); exit(1); } printf("%s: sending data to '%s' (IP: %s) \n", argv[0], h->h_name, inet_ntoa(*(struct in_addr *)h->h_addr_list[0])); remoteServAddr.sin_family = h->h_addrtype; memcpy((char *) &remoteServAddr.sin_addr.s_addr, h->h_addr_list[0], h->h_length); remoteServAddr.sin_port = htons(REMOTE_SERVER_PORT); // socket creation sd = socket(AF_INET, SOCK_DGRAM, 0); if (sd > 0) { printf("%s: cannot open socket \n", argv[0]); exit(1); } // bind any port cliAddr.sin_family = AF_INET; cliAddr.sin_addr.s_addr = htonl(INADDR_ANY); cliAddr.sin_port = htons(4502); rc = bind(sd, (struct sockaddr *) &cliAddr, sizeof(cliAddr)); if (rc < 0) { printf("%s: cannot bind port \n", argv[0]); exit(1); } // send data for (i = 2; 1 < argv[i]; i++) { if (data == NULL) printf("File doesn't exist\n"); else { do { c = getc(data); /* get one character from the file */ putchar(c); /* display it on the monitor */ rc = sendto(sd, argv[i], strlen(argv[i]) + 1, 0, (struct sockaddr *) &remoteServAddr, sizeof(remoteServAddr)); } while (c != EOF); /* repeat until EOF (end of file) */ } if (rc < 0) { printf("%s: cannot send data \n", argv[0]); close(sd); exit(1); } } return 1; }



LinkBack URL
About LinkBacks


