socket.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2011 University of Bonn, Computer Science Institute,
3  * Kathrin Gräve
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are met:
8  *
9  * 1. Redistributions of source code must retain the above copyright notice,
10  * this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the distribution.
14  * 3. Neither the name of the copyright holder nor the names of its
15  * contributors may be used to endorse or promote products derived from
16  * this software without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28  * POSSIBILITY OF SUCH DAMAGE.
29  */
30 #ifndef __MOCAP_OPTITRACK_SOCKET_H__
31 #define __MOCAP_OPTITRACK_SOCKET_H__
32 
33 #include <sys/types.h>
34 #include <sys/socket.h>
35 #include <netinet/in.h>
36 #include <netdb.h>
37 #include <unistd.h>
38 #include <string>
39 #include <arpa/inet.h>
40 #include <stdexcept>
41 
43 class SocketException : public std::runtime_error
44 {
45 public:
46 
49  SocketException(std::string description) : std::runtime_error(description) {}
50 
51  ~SocketException() throw() {}
52 };
53 
56 {
57 public:
58 
60  static const int MAXRECV = 3000;
61 
63  UdpMulticastSocket(const int local_port, const std::string multicast_ip = "224.0.0.1");
64 
67 
72  int recv();
73 
77  const char* getBuffer()
78  {
79  return &buf[0];
80  }
81 
82  int send(const char* buf, unsigned int sz, int port);
83 
84 private:
85 
86  int m_socket;
87  sockaddr_in m_local_addr;
88  sockaddr_in HostAddr;
90  char buf [ MAXRECV + 1 ];
91 };
92 
93 #endif /*__MOCAP_OPTITRACK_SOCKET_H__*/
Exception class thrown by socket classes in this file.
Definition: socket.h:43
const char * getBuffer()
Returns a pointer to the internal buffer, holding the received data.
Definition: socket.h:77
~SocketException()
Definition: socket.h:51
sockaddr_in HostAddr
Definition: socket.h:88
sockaddr_in m_local_addr
Definition: socket.h:87
bool remote_ip_exist
Definition: socket.h:89
Allows to retrieve data from a UDP multicast group.
Definition: socket.h:55
SocketException(std::string description)
Constructor.
Definition: socket.h:49


mocap_optitrack
Author(s): Kathrin Gräve , Alex Bencz/ , Tony Baltovski , JD Yamokoski
autogenerated on Fri Mar 26 2021 02:05:51