HPlogo HP 9000 Networking: BSD Sockets Interface Programmer's Guide > Chapter 5 Advanced Topics for Internet Datagram Sockets

Specifying a Default Socket Address

» 

Technical documentation

Complete book in PDF

 » Table of Contents

 » Glossary

 » Index

It is possible (but not required) to specify a default address for a remote datagram socket.

This allows you to send messages without specifying the remote address each time. In fact, if you use sendto or sendmsg, an error occurs if you enter any value other than 0 for the socket address after the default address has been recorded. You can use send or write instead of sendto or sendmsg once you have specified the default address.

Use recv for receiving messages. Although recvfrom can be used, it is not necessary, because you already know that the message came from the default remote socket. (Messages from sockets other than the default socket are discarded without notice.) read(2) can also be used, but does not allow you to use the MSG_PEEK flag.

Specify the default address with the connect system call. connect recognizes two special default addresses, INADDR_ANY and INADDR_BROADCAST. Using INADDR_ANY connects your socket to the IP address of your local host's primary LAN interface (for loopback connections). Using INADDR_BROADCAST connects your socket to the subnet broadcast address for your primary LAN interface; it allows you to send out broadcast packets that interface without specifying the subnet broadcast address.

When a datagram socket descriptor is specified in a connect call, connect associates the specified socket with a particular remote socket address. connect returns immediately because it only records the peer's socket address. After connect records the default address, any message sent from that socket is automatically addressed to the peer process and only messages from that peer are delivered to the socket.

connect may be called any number of times to change the associated destination address.

NOTE: This call does not behave the same as a connect for stream sockets. There is no connection, just a default destination. The remote host that you specify as the default may or may not use connect to specify your local host as its default remote host. The default remote host is not notified if your local socket is destroyed.

connect and its parameters are described in the following table.

Include files:

#include<sys/types.h>
#include<netinet/in.h>
#include<sys/socket.h>

System call:

connect(s,addr,addrlen) 
int s;
struct sockaddr*addr;
int addrlen;

Parameter

Description of Contents

INPUT Value

s

socket descriptor of local socket

socket descriptor of socket requesting default peer address

addr

pointer to the socket address

pointer to socket address of the socket to be the peer

addrlen

length of address

length of address pointed to by addr

Function result:

0 if connect is successful, -1 if failure occurs.

When to Specify a Default Socket Address

The client or server process should specify a default socket address after sockets are bound.

© 1997 Hewlett-Packard Development Company, L.P.