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

Binding Socket Addresses to Datagram, Sockets

Page 93 highlights

Using Internet Datagram Sockets Writing the Server and Client Processes When to Create Sockets The server or client process should create a socket before any other BSD Sockets system calls. Refer to the socket(2) man page for more information on socket. Binding Socket Addresses to Datagram Sockets After each process has created a socket, it must call bind to bind a socket address. Until an address is bound, other processes have no way to reference it. The server process must bind a specific port address to its socket. Otherwise, a client process would not know what port to send requests to for the desired service. The client process can let the local host bind its local port address. The client does not need to know its own port address, and if the server process needs to send a reply to the client's request, the server can find out the client's port address when it receives with recvfrom. Set up the address structure with a local address before you make a bind call. Use the wildcard address so your processes do not have to look up their own internet addresses. bind and its parameters are described in the following table. Include files: System call: #include #include #include bind (s, addr, addrlen) int s; struct sockaddr *addr; int addrlen; Chapter 4 93

  • 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

Chapter 4
93
Using Internet Datagram Sockets
Writing the Server and Client Processes
When to Create Sockets
The server or client process should create a socket before any other BSD
Sockets system calls. Refer to the
socket(2)
man page for more
information on
socket
.
Binding Socket Addresses to Datagram
Sockets
After each process has created a socket, it must call
bind
to bind a
socket address. Until an address is bound, other processes have no way
to reference it.
The server process must bind a specific port address to its socket.
Otherwise, a client process would not know what port to send requests to
for the desired service.
The client process can let the local host bind its local port address. The
client does not need to know its own port address, and if the server
process needs to send a reply to the client's request, the server can find
out the client's port address when it receives with
recvfrom
.
Set up the address structure with a local address before you make a
bind
call. Use the wildcard address so your processes do not have to look
up their own internet addresses.
bind
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:
bind (s, addr, addrlen)
int s;
struct sockaddr *addr;
int addrlen;