/*\brief Create and send single datagram \param socket broadcast over this socket \param datagram_no datagram identifier \return -1 if error, 0 if OK */ int send_datagram (ACE_SOCK_Dgram_Bcast &socket, int datagram_no) { static char dgram_buffer[BUFSIZ]; ACE_OS::snprintf (dgram_buffer, sizeof(dgram_buffer), "Datagram %d", datagram_no); if (socket.send (dgram_buffer, ACE_OS::strlen (dgram_buffer) + 1, dgram_port) < 0 ) ACE_ERROR_RETURN ((LM_ERROR, ACE_TEXT ("%p\n"), ACE_TEXT ("Cannot broadcast datagram")), -1); else ACE_DEBUG ((LM_INFO, ACE_TEXT ("%C sent\n"), dgram_buffer)); return 0; }
int ACE_TMAIN (int argc, ACE_TCHAR *argv[]) { program_name = argv[0]; parse_args (argc, argv); ACE_SOCK_Dgram_Bcast sd (ACE_Addr::sap_any); static char buf[] = "testing socket broadcast service"; if (sd.send (buf, ACE_OS::strlen (buf), broadcast_port_number) == -1) ACE_ERROR_RETURN ((LM_ERROR, "%p\n", "can't send broadcast"), -1); return 0; }
int SendBroadcast() { const char* message = "this is a message!\n"; ACE_INET_Addr sender (27016, ACE_LOCALHOST); ACE_SOCK_Dgram_Bcast udp (sender); unsigned short listenerPort = 27015; ssize_t sent = udp.send(message, ACE_OS_String::strlen(message) + 1, listenerPort); udp.close(); if (sent == -1) { ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("%p\n"), ACE_TEXT("send")), -1); } cout << "sent: " << sent << " bytes" << endl; return 0; }