Fawkes API Fawkes Development Version
datagram_broadcast.h
1
2/***************************************************************************
3 * datagram_broadcast.h - Fawkes broadcast datagram socket (UDP)
4 *
5 * Created: Sun Nov 26 17:23:25 2006
6 * Copyright 2006 Tim Niemueller [www.niemueller.de]
7 *
8 ****************************************************************************/
9
10/* This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version. A runtime exception applies to
14 * this software (see LICENSE.GPL_WRE file mentioned below for details).
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Library General Public License for more details.
20 *
21 * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22 */
23
24#ifndef _NETCOMM_SOCKET_DATAGRAM_BROADCAST_H_
25#define _NETCOMM_SOCKET_DATAGRAM_BROADCAST_H_
26
27#include <netcomm/socket/socket.h>
28#include <netinet/in.h>
29
30namespace fawkes {
31
33{
34public:
35 BroadcastDatagramSocket(const char *broadcast_addr_s, unsigned short port, float timeout = 0.f);
38
40
41 virtual Socket *clone();
42
43 virtual void bind();
44 virtual void bind(const unsigned short int port);
45 virtual void bind(const unsigned short int port, const char *hostname);
46
47 virtual void send(void *buf, size_t buf_len);
48 virtual void
49 send(void *buf, size_t buf_len, const struct sockaddr *to_addr, socklen_t addr_len)
50 {
51 send(buf, buf_len);
52 }
53
54private:
55 struct ::sockaddr_in *broadcast_addr;
56};
57
58} // end namespace fawkes
59
60#endif
Broadcast datagram socket.
BroadcastDatagramSocket & operator=(BroadcastDatagramSocket &s)
Assignment operator.
virtual void send(void *buf, size_t buf_len, const struct sockaddr *to_addr, socklen_t addr_len)
Send message.
virtual Socket * clone()
Clone socket.
virtual ~BroadcastDatagramSocket()
Destructor.
virtual void send(void *buf, size_t buf_len)
Send data.
BroadcastDatagramSocket(const char *broadcast_addr_s, unsigned short port, float timeout=0.f)
Constructor.
virtual void bind()
Bind socket.
Socket base class.
Definition: socket.h:64
float timeout
Timeout in seconds for various operations.
Definition: socket.h:138
Fawkes library namespace.