HP Rp7410 BSD Sockets Interface Programmer's Guide - Page 112

Specifying a Default Socket Address

Page 112 highlights

NOTE Advanced Topics for Internet Datagram Sockets Specifying a Default Socket Address Specifying a Default Socket Address 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. 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. 112 Chapter 5

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196

112
Chapter 5
Advanced Topics for Internet Datagram Sockets
Specifying a Default Socket Address
Specifying a Default Socket Address
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.