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

settings

Page 157 highlights

Using UNIX Domain Datagram Sockets Sending and Receiving Messages Parameter Contents INPUT Value OUTPUT Value s msg len flags from fromlen socket descriptor of local socket socket descriptor of socket receiving the message unchanged pointer to data pointer to buffer buffer that is to receive data pointer to received data maximum number of bytes that should be received size of data buffer unchanged settings for 0 (no options are optional flags supported unchanged address of socket that sent message pointer to address structure, not used for input pointer to socket address of socket that sent the message pointer to the pointer to size of size of from from pointer to the actual size of address returned Function result: number of bytes actually received if recvfrom succeeds, -1 if recvfrom call fails. Example: struct sockaddr_un fromaddr; int fromlen; ... count = recvfrom(s, msg, sizeof(msg), 0, &fromaddr, &fromlen); recvfrom blocks until there is a message to be received. No more than len bytes of data are returned. The entire message is read in one recvfrom, recvmsg, recv, or read operation. If the message is too long for the receive buffer, the excess data are discarded. Because only one message can be returned in a recvfrom call, if a second Chapter 7 157

  • 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 7
157
Using UNIX Domain Datagram Sockets
Sending and Receiving Messages
Function result:
number of bytes actually received if recvfrom succeeds,
-1 if recvfrom call fails.
Example:
struct
sockaddr_un
fromaddr;
int
fromlen;
...
count = recvfrom(s, msg, sizeof(msg), 0,
&fromaddr, &fromlen);
recvfrom
blocks until there is a message to be received.
No more than
len
bytes of data are returned. The entire message is read
in one
recvfrom
,
recvmsg
,
recv
, or
read
operation. If the message is
too long for the receive buffer, the excess data are discarded. Because
only one message can be returned in a
recvfrom
call, if a second
Parameter
Contents
INPUT Value
OUTPUT
Value
s
socket
descriptor of
local socket
socket descriptor
of socket receiving
the message
unchanged
msg
pointer to data
buffer
pointer to buffer
that is to receive
data
pointer to
received data
len
maximum
number of
bytes that
should be
received
size of data buffer
unchanged
flags
settings for
optional flags
0 (no options are
supported
unchanged
from
address of
socket that
sent message
pointer to address
structure, not used
for input
pointer to
socket address
of socket that
sent the
message
fromlen
pointer to the
size of from
pointer to size of
from
pointer to the
actual size of
address
returned