HP Rp5405 BSD Sockets Interface Programmer's Guide - Page 89

Getting the Remote Host's Network Address

Page 89 highlights

Using Internet Datagram Sockets Preparing Address Variables Field short sin_family u_short sin_port struct in_addr sin_addr Description Specifies the address family and should always be set to AF_INET. Specifies the port address. Assign this field when you bind the port address for the socket or when you get a port address for a specific service. Specifies the internet address. Assign this field when you get the internet address for the remote host. The server process must bind the port address of the service to its own socket and establish an address structure to store the clients' addresses when they are received with recvfrom. The client process does not have to bind a port address for its local socket; the host binds one automatically if one is not already bound. Refer to the inet(7F) man page for more information on sockaddr_in. Getting the Remote Host's Network Address The client process can use gethostbyname to obtain the internet address of the host and the length of that address (as the size of struct inaddr) from /etc/hosts, NIS, or BIND. gethostbyname and its parameters are described in the following table. Include files: System call: #include struct hostent *gethostbyname(name) char *name; Parameter Description of Contents name pointer to a valid node name (null-terminated string) INPUT Value host name Function result: pointer to struct hostent containing internet address, NULL pointer (0) if failure occurs. Example: Chapter 4 89

  • 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
89
Using Internet Datagram Sockets
Preparing Address Variables
The server process must bind the port address of the service to its own
socket and establish an address structure to store the clients' addresses
when they are received with
recvfrom
. The client process does not have
to bind a port address for its local socket; the host binds one
automatically if one is not already bound. Refer to the
inet(7F)
man
page for more information on
sockaddr_in
.
Getting the Remote Host's Network Address
The client process can use
gethostbyname
to obtain the internet
address of the host and the length of that address (as the size of struct
inaddr
) from
/etc/hosts
, NIS, or BIND.
gethostbyname
and its
parameters are described in the following table.
Include files:
#include <netdb.h>
System call:
struct hostent *gethostbyname(name)
char *name;
Function result:
pointer to struct hostent containing internet address,
NULL pointer (0) if failure occurs.
Example:
Field
Description
short sin_family
Specifies the address family and should
always be set to
AF_INET.
u_short sin_port
Specifies the port address. Assign this field
when you bind the port address for the
socket or when you get a port address for a
specific service.
struct in_addr
sin_addr
Specifies the internet address. Assign this
field when you get the internet address for
the remote host.
Parameter
Description of Contents
INPUT Value
name
pointer to a valid node name
(null-terminated string)
host name