diff options
author | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-01-10 20:14:34 +0000 |
---|---|---|
committer | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-01-10 20:14:34 +0000 |
commit | 8a996c69ad5ce5e47bce725f3b1ebe2378ef8d7b (patch) | |
tree | a6fc69d760a2fdb032a1dc1f8d00d5e101a09849 /examples/IPC_SAP/SOCK_SAP/C-inserver.cpp | |
parent | 08f7761a4e9cc2f7fea455441edf45fe284c1292 (diff) | |
download | ATCD-main_to_poa_merge_8.tar.gz |
This commit was manufactured by cvs2svn to create tagmain_to_poa_merge_8
'main_to_poa_merge_8'.
Diffstat (limited to 'examples/IPC_SAP/SOCK_SAP/C-inserver.cpp')
-rw-r--r-- | examples/IPC_SAP/SOCK_SAP/C-inserver.cpp | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/examples/IPC_SAP/SOCK_SAP/C-inserver.cpp b/examples/IPC_SAP/SOCK_SAP/C-inserver.cpp deleted file mode 100644 index c9aea99ae78..00000000000 --- a/examples/IPC_SAP/SOCK_SAP/C-inserver.cpp +++ /dev/null @@ -1,98 +0,0 @@ -// $Id$ - -#include "ace/OS.h" - -/* BSD socket server. */ - -int main (int argc, char *argv[]) -{ - // Initialize WinSock DLL on Win32... - ACE_OS::socket_init (ACE_WSOCK_VERSION); - - u_short port_num = - htons (argc > 1 ? ACE_OS::atoi (argv[1]) : ACE_DEFAULT_SERVER_PORT); - int sockbufsize = argc > 2 ? ACE_OS::atoi (argv[2]) : 0; - struct sockaddr_in saddr; - ACE_HANDLE s_handle, n_handle; - - /* Create a local endpoint of communication */ - if ((s_handle = ACE_OS::socket (PF_INET, SOCK_STREAM, 0)) == ACE_INVALID_HANDLE) - ACE_OS::perror ("socket"), ACE_OS::exit (1); - - // If a sockbufsize was specified, set it for both send and receive. - if (sockbufsize > 0) - { - if (ACE_OS::setsockopt (s_handle, SOL_SOCKET, SO_SNDBUF, - (const char *) &sockbufsize, - sizeof (sockbufsize)) != 0) - ACE_OS::perror ("SO_SNDBUF"), ACE_OS::exit (1); - if (ACE_OS::setsockopt (s_handle, SOL_SOCKET, SO_RCVBUF, - (const char *) &sockbufsize, - sizeof (sockbufsize)) != 0) - ACE_OS::perror ("SO_RCVBUF"), ACE_OS::exit (1); - } - - /* Set up the address information to become a server */ - ACE_OS::memset ((void *) &saddr, 0, sizeof saddr); - saddr.sin_family = AF_INET; - saddr.sin_port = port_num; - saddr.sin_addr.s_addr = INADDR_ANY; - - /* Associate address with endpoint */ - if (ACE_OS::bind (s_handle, (struct sockaddr *) &saddr, - sizeof saddr) == -1) - ACE_OS::perror ("bind"), ACE_OS::exit (1); - - /* Make endpoint listen for service requests */ - if (ACE_OS::listen (s_handle, 5) == -1) - ACE_OS::perror ("listen"), ACE_OS::exit (1); - - /* Performs the iterative server activities */ - - for (;;) - { - char buf[BUFSIZ]; - int r_bytes; - struct sockaddr_in cli_addr; - int cli_addr_len = sizeof cli_addr; - struct hostent *hp; - - /* Create a new endpoint of communication */ - do - n_handle = ACE_OS::accept (s_handle, (struct sockaddr *) - &cli_addr, &cli_addr_len); - while (n_handle == ACE_INVALID_HANDLE && errno == EINTR); - - if (n_handle == ACE_INVALID_HANDLE) - { - ACE_OS::perror ("accept"); - continue; - } - - int addr_len = sizeof cli_addr.sin_addr.s_addr; - hp = ACE_OS::gethostbyaddr ((char *) &cli_addr.sin_addr, - addr_len, AF_INET); - - if (hp != 0) - ACE_OS::printf ("client %s\n", hp->h_name), ACE_OS::fflush (stdout); - else - ACE_OS::perror ("gethostbyaddr"); - - /* Read data from client (terminate on error) */ - - while ((r_bytes = ACE_OS::recv (n_handle, buf, sizeof buf)) > 0) - if (ACE_OS::write (ACE_STDOUT, buf, r_bytes) != r_bytes) - ACE_OS::perror ("write"), ACE_OS::exit (1); - - if (ACE_OS::send (n_handle, "", 1) != 1) - ::perror ("write"), ACE_OS::exit (1); - - /* Close the new endpoint - (listening endpoint remains open) */ - if (ACE_OS::closesocket (n_handle) == -1) - ACE_OS::perror ("close"), ACE_OS::exit (1); - ACE_OS::exit (0); - } - /* NOTREACHED */ - return 0; -} |