/* System */ #include #include #include /* socket */ #include #include #include /* Create a (client) TCP socket, connect to port @ sever, return fd */ /* In case sockaddr_in is needed outside the function */ static struct sockaddr_in srv_address; int connect_to_socket( char * server, int port) { struct hostent *h; int fd; if ((h = gethostbyname(server)) == NULL) { fprintf (stderr, "host %s unknown\n", server); err (-1, "%s", "gethostbyname"); } if ((fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror ("Unable to create socket"); err (-1, "%s", "socket"); } srv_address.sin_family = AF_INET; memcpy (&srv_address.sin_addr.s_addr, h->h_addr, h->h_length); srv_address.sin_port = htons(port); if (connect(fd, &srv_address, sizeof(srv_address)) == -1){ err (-1, "%s", "connect"); } return fd; }