#include #include #include #include #include #include #include #define BUFFSIZE 32 void Die(char *mess) { perror(mess); exit(1); } int main(int argc, char *argv[]) { int sock; //struct sockaddr_in echoserver; struct sockaddr_in server; char buffer[BUFFSIZE]; unsigned int echolen; int received = 0; if (argc != 3) { fprintf(stderr, "USAGE: uploader \n"); exit(1); } /* Create the TCP socket */ if ((sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) { Die("Failed to create socket"); } /* Construct the server sockaddr_in structure */ memset(&server, 0, sizeof(server)); /* Clear struct */ server.sin_family = AF_INET; /* Internet/IP */ server.sin_addr.s_addr = inet_addr(argv[1]); /* IP address */ server.sin_port = htons(atoi(argv[2])); /* server port */ /* Establish connection */ if (connect(sock, (struct sockaddr *) &server, sizeof(server)) < 0) { Die("Failed to connect with server"); } /* FTP Protocol stuff */ /* File transfer stuff*/ /* Send the word to the server echolen = strlen(argv[1]); if (send(sock, argv[1], echolen, 0) != echolen) { Die("Mismatch in number of sent bytes"); } /* Receive the word back from the server fprintf(stdout, "Received: "); while (received < echolen) { int bytes = 0; if ((bytes = recv(sock, buffer, BUFFSIZE-1, 0)) < 1) { Die("Failed to receive bytes from server"); } received += bytes; buffer[bytes] = '\0'; /* Assure null terminated string fprintf(stdout, buffer); } fprintf(stdout, "\n"); */ /*Close*/ close(sock); exit(0); }