674 /* * Internet Socket Example * ----------------------- * Here is an example showing how to create and name a socket in the * Internet namespace. The newly created socket exists on the machine that * the program is running on. Rather than finding and using the machine's * Internet address, this example specifies `INADDR_ANY' as the host * address; the system replaces that with the machine's actual address. */ #include #include #include #include #include int make_socket (unsigned short int port) { int sock; struct sockaddr_in name; /* Create the socket. */ sock = socket (PF_INET, SOCK_STREAM, 0); if (sock < 0) { perror ("socket"); exit (EXIT_FAILURE); } /* Give the socket a name. */ name.sin_family = AF_INET; name.sin_port = htons (port); name.sin_addr.s_addr = htonl (INADDR_ANY); if (bind (sock, (struct sockaddr *) &name, sizeof (name)) < 0) { perror ("bind"); exit (EXIT_FAILURE); } return sock; } /* * Here is another example, showing how you can fill in a `sockaddr_in' * structure, given a host name string and a port number: */ void init_sockaddr (struct sockaddr_in *name, const char *hostname, unsigned short int port) { struct hostent *hostinfo; name->sin_family = AF_INET; name->sin_port = htons (port); hostinfo = gethostbyname (hostname); if (hostinfo == NULL) { fprintf (stderr, "Unknown host %s.\n", hostname); exit (EXIT_FAILURE); } name->sin_addr = *(struct in_addr *) hostinfo->h_addr; } . 0