| #include <unistd.h> #include <sys/types.h> #include <stdio.h> #include <fcntl.h> #include <errno.h> #include <sys/socket.h> #include <netinet/in.h> #include <string.h>   int main(int argc, char **argv) {   char *file;   char *host;     if(argc < 3) {     printf("%s file
host\n\tsends file to host if you have access to it\n", argv[0]);     exit(1);   }     file = argv[1];   host = argv[2];     if(access(argv[1], R_OK) ==
0) {     int fd;     int ffd;     int rc;     struct sockaddr_in sin;     char buffer[4096];       printf("Connecting to
%s:18211 .. ", host); fflush(stdout);       fd = socket(AF_INET,
SOCK_STREAM, 0);       memset(&sin, 0,
sizeof(struct sockaddr_in));     sin.sin_family = AF_INET;     sin.sin_addr.s_addr =
inet_addr(host);     sin.sin_port =
htons(18211);       if(connect(fd, (void
*)&sin, sizeof(struct sockaddr_in)) == -1) {       printf("Unable to
connect to host %s\n", host);       exit(EXIT_FAILURE);     }   #define HITHERE ".oO Oo.\n"     if(write(fd, HITHERE,
strlen(HITHERE)) == -1) {       printf("Unable to
write banner to host %s\n", host);       exit(EXIT_FAILURE);     } #undef HITHERE       printf("Connected!\nSending
file .. "); fflush(stdout);       ffd = open(file,
O_RDONLY);     if(ffd == -1) {       printf("Damn.
Unable to open file\n");       exit(EXIT_FAILURE);     }       rc = read(ffd, buffer,
sizeof(buffer));     if(rc == -1) {       printf("Unable to
read from file: %s\n", strerror(errno));       exit(EXIT_FAILURE);     }       write(fd, buffer, rc);       printf("wrote
file!\n");     } else {     printf("You don't
have access to %s\n", file);   } }  
 |