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

Or Msg_peek

Page 98 highlights

Using Internet Datagram Sockets Sending and Receiving Messages Parameter flags from fromlen Contents settings for optional flags address of socket that sent message pointer to the size of from INPUT Value 0 or MSG_PEEK pointer to address structure, not used for input pointer to size of from OUTPUT Value unchanged pointer to socket address of socket that sent the message pointer to the actual size of address returned Function result: Number of bytes actually received, -1 if an error occurs. Example: addrlen = sizeof(sockaddr_in); ... count = recvfrom(s, buffer, BUFFERSIZE, 0, clientaddr, &addrlen); 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 allocated buffer, the excess data are discarded. Because only one message can be returned in a recvfrom call, if a second message is in the queue, it is not affected. Therefore, the best technique is to receive as much as possible on each call. The host does not wait for len bytes to be available; if less than len bytes are available, that number of bytes are returned. Flag Options The flag options are: • 0 for no options. 98 Chapter 4

  • 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

98
Chapter 4
Using Internet Datagram Sockets
Sending and Receiving Messages
Function result:
Number of bytes actually received, –1 if an error
occurs.
Example:
addrlen = sizeof(sockaddr_in);
...
count = recvfrom(s, buffer, BUFFERSIZE, 0, clientaddr, &addrlen);
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 allocated buffer, the excess data are discarded. Because
only one message can be returned in a
recvfrom
call, if a second
message is in the queue, it is not affected. Therefore, the best technique
is to receive as much as possible on each call.
The host does not wait for
len
bytes to be available; if less than
len
bytes are available, that number of bytes are returned.
Flag Options
The flag options are:
0 for no options.
flags
settings for
optional flags
0 or MSG_PEEK
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
Parameter
Contents
INPUT Value
OUTPUT
Value