summaryrefslogtreecommitdiff
path: root/ACE/protocols/examples/RMCast/Send_Msg/Sender.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/protocols/examples/RMCast/Send_Msg/Sender.cpp')
-rw-r--r--ACE/protocols/examples/RMCast/Send_Msg/Sender.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/ACE/protocols/examples/RMCast/Send_Msg/Sender.cpp b/ACE/protocols/examples/RMCast/Send_Msg/Sender.cpp
new file mode 100644
index 00000000000..2061e2af364
--- /dev/null
+++ b/ACE/protocols/examples/RMCast/Send_Msg/Sender.cpp
@@ -0,0 +1,53 @@
+// file : Sender.cpp
+// author : Boris Kolpackov <boris@kolpackov.net>
+// cvs-id : $Id$
+
+#include "ace/Log_Msg.h"
+#include "ace/OS_NS_unistd.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
+ ACE_RMCast::Socket socket (addr, false);
+ //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 (50, 0));
+
+ return 0;
+ }
+ catch (args const&)
+ {
+ ACE_ERROR ((LM_ERROR,
+ "usage: %s <IPv4 multicast address>:<port>\n", argv[0]));
+ }
+
+ return 1;
+}