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

Example Using UNIX Domain Datagram, Sockets

Page 160 highlights

NOTE Using UNIX Domain Datagram Sockets Example Using UNIX Domain Datagram Sockets Example Using UNIX Domain Datagram Sockets These programs are provided as examples only of UNIX Domain datagram socket usage and are not Hewlett-Packard supported products. These programming examples demonstrate how to set up and use UNIX Domain datagram sockets. These sample programs can be found in the /usr/lib/demos/networking/af_unix directory. The client program is intended to run in conjunction with the server program. This example shows how to create UNIX Domain datagram sockets and how to set up address structures for the sockets. In this example the client process sends 2000 bytes of data to the server (five times). The server process can receive data from any other process and will echo the data back to the sender. The source code for these two programs follows. /* * AF_UNIX datagram server process * * This is an example program that demonstrates the use of * AF_UNIX datagram sockets as a BSD Sockets mechanism. This * program contains the server and is intended to operate in * conjunction with the client program. * */ #include #include #include #include #include #include #include #define SOCKET_PATH "/tmp/myserver" #define bzero(ptr, len) memset((ptr), NULL, (len)) int main() { timeout(); int sock; int slen, rlen, expect; unsigned char sdata[5000]; struct sockaddr_un servaddr; /* address of server */ struct sockaddr_un from; int fromlen; /* Escape hatch so blocking calls don't wait forever */ signal(SIGALRM,timeout); 160 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

160
Chapter 7
Using UNIX Domain Datagram Sockets
Example Using UNIX Domain Datagram Sockets
Example Using UNIX Domain Datagram
Sockets
NOTE
These programs are provided as examples only of UNIX Domain
datagram socket usage and are not Hewlett-Packard supported products.
These programming examples demonstrate how to set up and use UNIX
Domain datagram sockets. These sample programs can be found in the
/usr/lib/demos/networking/af_unix
directory. The client program
is intended to run in conjunction with the server program.
This example shows how to create UNIX Domain datagram sockets and
how to set up address structures for the sockets. In this example the
client process sends 2000 bytes of data to the server (five times). The
server process can receive data from any other process and will echo the
data back to the sender.
The source code for these two programs follows.
/*
*
AF_UNIX datagram server process
*
*
This is an example program that demonstrates the use of
*
AF_UNIX datagram sockets as a BSD Sockets mechanism. This
*
program contains the server and is intended to operate in
*
conjunction with the client program.
*
*/
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/un.h>
#include <stdio.h>
#include <signal.h>
#include <netdb.h>
#define SOCKET_PATH
“/tmp/myserver”
#define bzero(ptr, len)
memset((ptr), NULL, (len))
int
timeout();
main()
{
int
sock;
int
slen, rlen, expect;
unsigned char
sdata[5000];
struct
sockaddr_un servaddr; /* address of server */
struct
sockaddr_un from;
int
fromlen;
/* Escape hatch so blocking calls don't wait forever */
signal(SIGALRM,timeout);