#include <netdb.h>
#include <netinet/in.h>
#include <stdio.h>
#include <string.h>
#include <strings.h>
#include <sys/socket.h>
#include <unistd.h>
#define PORT 11011
int main (int argc, char ** argv) {
struct sockaddr_in addr; int fd;
struct hostent * hp; char * hostname = argv[1];
char buffer[BUFSIZ]; ssize_t nbytes;
if ((hp = gethostbyname(hostname)) == NULL) {
fprintf(stderr, "unknown host: %s\n", hostname);
exit(1);
}
bzero(&addr, sizeof(struct sockaddr_in));
addr.sin_family = AF_INET;
bcopy(hp->h_addr, (void *) &addr.sin_addr, hp->h_length);
addr.sin_port = htons(PORT);
if ((fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
perror("socket"); exit(1);
}
if (connect(fd, (struct sockaddr *) &addr,
sizeof addr) < 0) {
perror("connect"); exit(1);
}
while((nbytes = read(fd, buffer, sizeof buffer)) > 0 &&
write(1, buffer, nbytes) == nbytes);
exit(0);
}
|