Using A Wildcard Local Address - HP Rp3440-4 - 9000 - 0 MB RAM Programmer's Manual

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

Advertisement

Using Internet Stream Sockets
Preparing Address Variables
#include <netdb.h>
struct servent *sp; /* pointer to service info */
...
sp = getservbyname ("example", "tcp");
peeraddr.sin_port = sp->s_port;
When to Get the Server's Socket Address
The server process needs to get the socket address before binding the
listen socket. The client process needs to get the socket address before
the client executes a connection request. Refer to the getservent(3n)
man page for more information on getservbyname.

Using a Wildcard Local Address

Wildcard addressing simplifies local address binding. When an address
is assigned the value of INADDR_ANY, the host interprets the address
as any valid address. This is useful for your server process when you are
setting up the listen socket. It means that the server process does not
have to look up its own internet address. When INADDR_ANY is used as
a host address, it also allows the server to listen to all network
connections on the host. When a specific address is used in the bind, the
server can only listen to that specific connection. Thus, INADDR_ANY is
useful on a system in which multiple LAN cards are available, and
messages for a given socket can come in on any of them.
For example, to bind a specific port address to a socket, but leave the
local internet address unspecified, the following source code could be
used:
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
...
struct sockaddr_in sin;
...
s = socket(AF_INET, SOCK_STREAM, 0);
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = INADDR_ANY;
sin.sin_port = MYPORT;
bind (s, &sin, sizeof(sin));
34
Chapter 2

Advertisement

Table of Contents
loading

Table of Contents