summaryrefslogtreecommitdiff
path: root/examples/IPC_SAP/SOCK_SAP/README
blob: bbe0f20ce5a531d92698ca4677c82e8fe2010112 (plain)
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
This directory contains groups of client and server test programs that
exercise the various C++ wrappers for sockets.  In general, the test
programs do more or less the same thing -- the client establishes a
connection with the server and then transfers data to the server,
which keeps printing the data until EOF is reached (e.g., user types
^D).

Unless noted differently, the server is implemented as an "iterative
server," i.e., it only deals with one client at a time.  The following
describes each set of tests in more detail:

	. C-{inclient,inserver}.cpp -- This is basically a C code
	  implementation that opens a connection to the server and
	  sends all the data from the stdin using Internet domain
	  sockets (i.e., TCP).  

	. CPP-{inclient,inserver}.cpp -- This test is
          a more sophisticated C++ wrapper version of the preceeding
          "C" test using Internet domain sockets (i.e., TCP).
          It allows you to test oneway and twoway socket communication
          latency and throughput between two processes on the same
          machine or on different machines.

        . CPP-inserver-fancy.cpp -- This program is a more glitzy
          version of CPP-inserver.cpp that illustrates additional
          features of ACE, such as ACE_Svc_Handler.

	. CPP-inserver-poll.cpp -- This test illustrates how to
	  write single-threaded concurrent servers using UNIX SVR4
	  poll().  You can run this test using the CPP-inclient.cpp
	  program as the oneway client.

	. CPP-{unclient,unserver}.cpp -- This test is basically
	  a C++ wrapper version of the preceeding "C++" test using
	  UNIX domain sockets.  Note that this test only works
          between a client and server process on the same machine.

	. FD-{unclient,inclient}.cpp -- This test illustrates
	  how to pass file descriptors between a client and a
	  concurrent server process on the same machine using the ACE
	  C++ wrappers for UNIX domain sockets.

For examples of the ACE SOCK_{Dgram,CODgram} and
SOCK_Dgram_{Mcast,Bcast} wrappers, please take a look in the
./examples/Reactor/{Dgram,Multicast,Ntalker} directories.