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

Example Using UNIX Domain Stream, Sockets

Page 140 highlights

NOTE Using UNIX Domain Stream Sockets Example Using UNIX Domain Stream Sockets Example Using UNIX Domain Stream Sockets These programs are provided as examples only of UNIX Domain stream socket usage and are not Hewlett-Packard supported products. These programming examples demonstrate how to set up and use UNIX Domain stream 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 stream 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. /* * Sample Program: AF_UNIX stream sockets, server process * * CATCH - RECEIVE DATA FROM THE PITCHER * * Pitch and catch set up a simple unix domain stream socket * client-server connection. The client (pitch) then sends * data to server (catch), throughput is calculated, and the * result is printed to the client's stdout. */ #include #include #include #include #include #include #include #define SOCKNAME "/tmp/p_n_c" #define BUFSIZE 32*1024-1 int timeout(); int s; /* server socket */ char buffer[BUFSIZE]; struct bullet { int bytes; int throughput; int magic; } bullet = { 0, 0, 0 }; send_data(fd, buf, buflen) char *buf; { int cc; while (buflen > 0) { 140 Chapter 6

  • 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

140
Chapter 6
Using UNIX Domain Stream Sockets
Example Using UNIX Domain Stream Sockets
Example Using UNIX Domain Stream
Sockets
NOTE
These programs are provided as examples only of UNIX Domain stream
socket usage and are not Hewlett-Packard supported products.
These programming examples demonstrate how to set up and use UNIX
Domain stream 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 stream 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.
/*
*
Sample Program: AF_UNIX stream sockets, server process
*
*
CATCH - RECEIVE DATA FROM THE PITCHER
*
*
Pitch and catch set up a simple unix domain stream socket
*
client-server connection. The client (pitch) then sends
*
data to server (catch), throughput is calculated, and the
*
result is printed to the client's stdout.
*/
#include <stdio.h>
#include <time.h>
#include <signal.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#define SOCKNAME
“/tmp/p_n_c”
#define BUFSIZE
32*1024-1
int
timeout();
int
s;
/* server socket */
char buffer[BUFSIZE];
struct bullet {
int bytes;
int throughput;
int magic;
} bullet = { 0, 0, 0 };
send_data(fd, buf, buflen)
char *buf;
{
int cc;
while (buflen > 0) {