diff options
Diffstat (limited to 'ACE/protocols/tests/RMCast/Sender.cpp')
-rw-r--r-- | ACE/protocols/tests/RMCast/Sender.cpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/ACE/protocols/tests/RMCast/Sender.cpp b/ACE/protocols/tests/RMCast/Sender.cpp new file mode 100644 index 00000000000..bbc6dc1b1f7 --- /dev/null +++ b/ACE/protocols/tests/RMCast/Sender.cpp @@ -0,0 +1,55 @@ +// file : Sender.cpp +// author : Boris Kolpackov <boris@kolpackov.net> +// cvs-id : $Id$ + +#include "ace/OS.h" +#include "ace/Log_Msg.h" + +#include "ace/RMCast/Socket.h" + +#include "Protocol.h" + +class args {}; + +int +ACE_TMAIN (int argc, ACE_TCHAR* argv[]) +{ + try + { + if (argc < 2) throw args (); + + ACE_INET_Addr addr (argv[1]); + + //FUZZ: disable check_for_lack_ACE_OS + // Turn on message loss and reordering simulation. + // + ACE_RMCast::Socket socket (addr, false, true); + //FUZZ: enable check_for_lack_ACE_OS + + Message msg; + msg.sn = 0; + + for (unsigned short i = 0; i < payload_size; i++) + { + msg.payload[i] = i; + } + + for (; msg.sn < message_count; msg.sn++) + { + socket.send (&msg, sizeof (msg)); + } + + // Keep running in case retransmissions are needed. + // + ACE_OS::sleep (ACE_Time_Value (60, 0)); + + return 0; + } + catch (args const&) + { + ACE_ERROR ((LM_ERROR, + "usage: %s <IPv4 multicast address>:<port>\n", argv[0])); + } + + return 1; +} |