HP Rp3440-4 - 9000 - 0 MB RAM Programmer's Manual page 104

Bsd sockets interface programmer’s guide
Hide thumbs Also See for Rp3440-4 - 9000 - 0 MB RAM:
Table of Contents

Advertisement

Using Internet Datagram Sockets
Example Using Datagram Sockets
/* This will open the /etc/hosts file and keep
* it open.
* 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.
* 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,
if ( cc == -1) exit(1);
buffer[cc]='\0';
hp = gethostbyname (buffer);
if (hp == NULL) {
} else {
((struct in_addr *)(hp->h_addr))->s_addr;
}
104
This will make accesses to it faster.
Then, it will
&clientaddr_in, &addrlen);
/* Make sure the message received is
* null terminated.
*/
/* Treat the message as a string
* containing a hostname.
* fot the name in /etc/hosts.
*/
/* Name was not found. Return
* a special value signifying
* the error.
*/
reqaddr.s_addr = ADDRNOTFOUND;
/* Copy address of host
* into the return buffer.
*/
reqaddr.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.
*/
Search
Chapter 4

Advertisement

Table of Contents
loading

Table of Contents