HP Rp7410 BSD Sockets Interface Programmer's Guide - Page 104
hp = gethostbyname buffer
![]() |
View all HP Rp7410 manuals
Add to My Manuals
Save this manual to your list of manuals |
Page 104 highlights
Using Internet Datagram Sockets Example Using Datagram Sockets /* This will open the /etc/hosts file and keep * it open. This will make accesses to it faster. * If the host has been configured to use the NIS * server or name server (BIND), it is desirable * not to call sethostent(1), because a STREAM * socket is used instead of datagrams for each * call to gethostbyname(). */ sethostent(1); for(;;) { /* Note that addrlen passed as a pointer * so that the recvfrom call can return * the size of the returned address. */ addrlen = sizeof(struct sockaddr_in); /* This call will block until a new * request arrives. Then, it will * return the address of the client, * and a buffer containing its request. * BUFFERSIZE - 1 bytes are read so that * room is left at the end of the buffer * for a null character. */ cc = recvfrom(s, buffer, BUFFERSIZE - 1, 0, &clientaddr_in, &addrlen); if ( cc == -1) exit(1); /* Make sure the message received is * null terminated. */ buffer[cc]='\0'; /* Treat the message as a string * containing a hostname. Search * fot the name in /etc/hosts. */ hp = gethostbyname (buffer); if (hp == NULL) { /* Name was not found. Return * a special value signifying * the error. */ reqaddr.s_addr = ADDRNOTFOUND; } else { /* Copy address of host * into the return buffer. */ reqaddr.s_addr = ((struct in_addr *)(hp->h_addr))->s_addr; } /* Send the response back to the * requesting client. The address is * sent in network byte order. All * errors are ignored. The client * will retry if it does not receive * the response. */ 104 Chapter 4
![](/manual_guide/products/hewlettpackard-rp5405-bsd-sockets-interface-programmers-guide-5276e7d/104.png)