static void * client (void *) { const ACE_TCHAR *rendezvous = PIPE_NAME; ACE_SPIPE_Stream cli_stream; ACE_SPIPE_Connector con; ACE_OS::sleep (5); if (con.connect (cli_stream, ACE_SPIPE_Addr (rendezvous)) == -1) ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n%a"), rendezvous, 1)); for (const char *c = ACE_ALPHABET; *c != '\0'; c++) if (cli_stream.send (c, 1) == -1) ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("send"))); if (cli_stream.close () == -1) ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("close"))); #if defined (ACE_HAS_WIN32_NAMED_PIPES) // Wait for server to get ready... ACE_OS::sleep (1); // Connect in bytestream-oriented mode. if (con.connect (cli_stream, ACE_SPIPE_Addr (rendezvous), 0, ACE_Addr::sap_any, 0, O_RDWR, 0, 0, PIPE_READMODE_BYTE) == -1) ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n%a"), rendezvous, 1)); // Write out the alphabet all at once. if (cli_stream.send_n (ACE_ALPHABET, ACE_OS::strlen (ACE_ALPHABET)) != (ssize_t) ACE_OS::strlen (ACE_ALPHABET)) ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("send_n"))); // Write out the alphabet one byte at a time for (const char *d = ACE_ALPHABET; *d != '\0'; d++) if (cli_stream.send (d, 1) == -1) ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("send"))); if (cli_stream.close () == -1) ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("close"))); #endif #if !defined (ACE_WIN32) ACE_OS::exit (0); #endif return 0; }
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { ACE_SPIPE_Acceptor peer_acceptor; ACE_SPIPE_Stream new_stream; char buf[BUFSIZ]; int n; // Wait up to ACE_DEFAULT_TIMEOUT seconds to accept connection. ACE_Time_Value timeout (ACE_DEFAULT_TIMEOUT); if (argc > 1) rendezvous = argv[1]; ACE_OS::unlink (rendezvous); ACE_OS::fdetach (ACE_TEXT_ALWAYS_CHAR (rendezvous)); if (peer_acceptor.open (ACE_SPIPE_Addr (rendezvous)) == -1) ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "open"), 1); ACE_DEBUG ((LM_DEBUG, "waiting for connection\n")); if (peer_acceptor.accept (new_stream, 0, &timeout) == -1) ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "accept"), 1); ACE_DEBUG ((LM_DEBUG, "accepted\n")); while ((n = new_stream.recv (buf, sizeof buf)) > 0) ACE_OS::write (ACE_STDOUT, buf, n); return 0; }
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { if (argc < 2) ACE_ERROR_RETURN ((LM_ERROR, "usage: %s string [rendezvous]\n", argv[0]), 1); if (argc > 2) rendezvous = argv[2]; ACE_SPIPE_Stream cli_stream; ACE_SPIPE_Connector con; if (con.connect (cli_stream, ACE_SPIPE_Addr (rendezvous)) == -1) ACE_ERROR_RETURN ((LM_ERROR, "%p\n", rendezvous), 1); ssize_t len = ACE_OS::strlen (argv[1]) + 1; if (cli_stream.send (argv[1], len) != len) ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send"), 1); if (cli_stream.close () == -1) ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "close"), 1); return 0; }
int main (int argc, char *argv[]) { int size = argc > 1 ? atoi (argv[1]) : DEFAULT_SIZE; int iterations = argc > 2 ? atoi (argv[2]) : DEFAULT_COUNT; char *buf = new char[size]; if (argc > 3) rendezvous = argv[3]; ACE_SPIPE_Stream cli_stream; ACE_SPIPE_Connector con; int i; if (con.connect (cli_stream, ACE_SPIPE_Addr (rendezvous)) == -1) ACE_ERROR_RETURN ((LM_ERROR, "%p\n", rendezvous), -1); for (i = 0; i < size; i++) buf[i] = 'a'; for (i = 0; i < iterations; i++) if (cli_stream.send (buf, size) != size) ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "putmsg"), -1); if (cli_stream.close () == -1) ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "close"), -1); return 0; }
int ACE_TMAIN (int /* argc */, ACE_TCHAR * /* argv */ []) { ACE_SPIPE_Acceptor acceptor; ACE_SPIPE_Stream new_stream; char buf[BUFSIZ]; int n; const ACE_TCHAR *rendezvous = MAKE_PIPE_NAME ("acepipe"); // Initialize named pipe listener. if (acceptor.open (ACE_SPIPE_Addr (rendezvous)) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("open")), 1); for (;;) { ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("waiting for connection\n"))); // Accept a client connection. if (acceptor.accept (new_stream, 0) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("accept")), 1); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Accepted connection\n"))); while ((n = new_stream.recv (buf, sizeof buf)) > 0) { ACE_OS::fprintf (stderr, "%s\n", buf); ACE_OS::write (ACE_STDOUT, buf, n); } if (n == -1) { ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("End of connection. Closing handle\n"))); new_stream.close (); } } ACE_NOTREACHED(return 0); }
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { int size = argc > 1 ? ACE_OS::atoi (argv[1]) : DEFAULT_SIZE; int iterations = argc > 2 ? ACE_OS::atoi (argv[2]) : DEFAULT_COUNT; char *buf; ACE_NEW_RETURN (buf, char[size], 1); const ACE_TCHAR *rendezvous = MAKE_PIPE_NAME ("acepipe"); ACE_SPIPE_Stream cli_stream; ACE_SPIPE_Connector con; int i; if (con.connect (cli_stream, ACE_SPIPE_Addr (rendezvous)) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), rendezvous), -1); ACE_OS::strcpy (buf, "hello"); size = ACE_Utils::truncate_cast<int> (ACE_OS::strlen (buf) + 1); for (i = 0; i < iterations; i++) if (cli_stream.send (buf, size) != size) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("putmsg")), -1); if (cli_stream.close () == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("close")), -1); return 0; }
int IPC_Server::init (int argc, ACE_TCHAR *argv[]) { if (this->parse_args (argc, argv) == -1) return -1; ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Opening %s\n"), rendezvous_)); // Initialize named pipe listener. if (this->open (ACE_SPIPE_Addr (rendezvous_)) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("open")), 1); // Register to receive shutdowns using this handler. else if (ACE_Reactor::instance ()->register_handler (SIGINT, this) == -1) return -1; else return 0; }
int ACE_TMAIN(int argc, ACE_TCHAR *argv[]) { parse_arguments (argc, argv); ACE_SPIPE_Stream spipe; ACE_SPIPE_Connector con; if (con.connect (spipe, ACE_SPIPE_Addr (rendezvous_spipe)) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("Cannot open %s for requesting a new ") ACE_TEXT ("communication channel in %p\n"), rendezvous_spipe, ACE_TEXT ("local_spipe_client_test")), -1); //FUZZ: disable check_for_lack_ACE_OS ACE_Mem_Map mmap (file_name); void *cp; if (mmap (cp) == -1) //FUZZ: enable check_for_lack_ACE_OS ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("mmap")), -1); // Next, send the file's contents. ACE_Str_Buf msg (cp, int (mmap.size ())); if (spipe.send ((ACE_Str_Buf *) 0, &msg) == -1) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("send")), -1); return 0; }
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { int size = argc > 1 ? ACE_OS::atoi (argv[1]) : DEFAULT_SIZE; int iterations = argc > 2 ? ACE_OS::atoi (argv[2]) : DEFAULT_COUNT; char *buf; ACE_NEW_RETURN (buf, char[size], -1); if (argc > 3) rendezvous = argv[3]; ACE_SPIPE_Stream cli_stream; ACE_SPIPE_Connector con; int i; if (con.connect (cli_stream, ACE_SPIPE_Addr (rendezvous)) == -1) ACE_ERROR_RETURN ((LM_ERROR, "%p\n", rendezvous), 1); for (i = 0; i < size; i++) buf[i] = 'a'; ACE_Str_Buf buffer (buf, size); for (i = 0; i < iterations; i++) if (cli_stream.send ((ACE_Str_Buf *) 0, &buffer, 1, MSG_BAND) == -1) ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send"), 1); if (cli_stream.close () == -1) ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "close"), 1); delete buf; return 0; }
int ACE_TMAIN(int argc, ACE_TCHAR *argv[]) { parse_arguments (argc, argv); ACE_SPIPE_Stream spipe; ACE_SPIPE_Connector con; if (con.connect (spipe, ACE_SPIPE_Addr (rendezvous_spipe)) == -1) ACE_ERROR_RETURN ((LM_ERROR, "Cannot open %s for requesting a new communication channel" " in local_spipe_client_test.\n", rendezvous_spipe), -1); ACE_Mem_Map mmap (file_name); void *cp; if (mmap (cp) == -1) ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "mmap"), -1); // Next, send the file's contents. ACE_Str_Buf msg (cp, int (mmap.size ())); if (spipe.send ((ACE_Str_Buf *) 0, &msg) == -1) ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "send"), -1); return 0; }
static void * server (void *) { ACE_SPIPE_Acceptor acceptor; ACE_SPIPE_Stream new_stream; char buf[BUFSIZ]; const char *t = ACE_ALPHABET; const ACE_TCHAR *rendezvous = PIPE_NAME; // Initialize named pipe listener. if (acceptor.open (ACE_SPIPE_Addr (rendezvous)) == -1) ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n%a"), ACE_TEXT ("open"), 1)); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("waiting for connection\n"))); // Accept a client connection if (acceptor.accept (new_stream, 0) == -1) ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n%a"), ACE_TEXT ("accept"), 1)); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Accepted connection\n"))); while (new_stream.recv (buf, 1) > 0) { ACE_TEST_ASSERT (*t == buf[0]); t++; } ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("End of connection. Closing handle\n"))); new_stream.close (); acceptor.close (); #if defined (ACE_HAS_WIN32_NAMED_PIPES) // Initialize an NT bytestream named pipe listener. if (acceptor.open (ACE_SPIPE_Addr (rendezvous), 1, 0, 0, PIPE_TYPE_BYTE | PIPE_READMODE_BYTE) == -1) ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n%a"), ACE_TEXT ("open"), 1)); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("waiting for connection\n"))); // Accept a client connection if (acceptor.accept (new_stream, 0) == -1) ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n%a"), ACE_TEXT ("accept"), 1)); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("Accepted connection\n"))); // The client will write the entire buffer at once, verify that we // can stream it in one byte at a time. for (t = ACE_ALPHABET; *t; t++) { if (new_stream.recv (buf, 1) <= 0) { ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n%a"), ACE_TEXT ("recv"), 1)); break; } ACE_TEST_ASSERT (*t == buf[0]); } // Wait for the client to stream in the buffer one byte at a time. ACE_OS::sleep (1); // Verify that we can read the stream of individual bytes all at // once. if (new_stream.recv (buf, sizeof(buf)) != (ssize_t) ACE_OS::strlen (ACE_ALPHABET)) ACE_ERROR ((LM_ERROR, ACE_TEXT ("%p\n%a"), ACE_TEXT ("recv"), 1)); else ACE_TEST_ASSERT(ACE_OS::memcmp(ACE_ALPHABET, buf, ACE_OS::strlen (ACE_ALPHABET)) == 0); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("End of connection. Closing handle\n"))); new_stream.close (); acceptor.close (); #endif /* defined (ACE_HAS_WIN32NAMED_PIPES) */ return 0; }