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

can also be used if you do not need to know what socket sent

Page 156 highlights

Using UNIX Domain Datagram Sockets Sending and Receiving Messages Function result: number of bytes actually sent if sendto succeeds, -1 if sendto call fails. Example: struct sockaddr_un servaddr; ... count = sendto(s, argv[2], strlen(argv[2]), 0, &servaddr, sizeof(struct sockaddr_un); When to Send Data The server or client process should send data after server has bound to an address. Refer to the send(2) man page for more information on sendto and sendmsg. Receiving Messages Use recvfrom or recvmsg to receive messages. recvmsg is similar to recvfrom, except recvmsg allows the read data to be scattered into buffers. recv can also be used if you do not need to know what socket sent the message. However, if you want to send a response to the message, you must know where it came from. Except for the extra information returned by recvfrom, the two calls are identical. recvfrom and its parameters are described in the following table. Include files: System call: #include #include #include count = recvfrom(s, msg, len, flags, from, fromlen) int s; char *msg; int len, flags; struct sockaddr_un *from; int *fromlen; 156 Chapter 7

  • 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

156
Chapter 7
Using UNIX Domain Datagram Sockets
Sending and Receiving Messages
Function result:
number of bytes actually sent if sendto succeeds, -1 if
sendto call fails.
Example:
struct
sockaddr_un
servaddr;
...
count = sendto(s, argv[2], strlen(argv[2]), 0,
&servaddr,
sizeof(struct sockaddr_un);
When to Send Data
The server or client process should send data after server has bound to
an address. Refer to the
send(2)
man page for more information on
sendto
and
sendmsg
.
Receiving Messages
Use
recvfrom
or
recvmsg
to receive messages.
recvmsg
is similar to
recvfrom
, except
recvmsg
allows the read data to be scattered into
buffers.
recv
can also be used if you do not need to know what socket sent the
message. However, if you want to send a response to the message, you
must know where it came from. Except for the extra information
returned by
recvfrom
, the two calls are identical.
recvfrom
and its
parameters are described in the following table.
Include files:
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
System call:
count = recvfrom(s, msg, len, flags, from,
fromlen)
int s;
char *msg;
int len, flags;
struct sockaddr_un *from;
int *fromlen;