Visual Servoing Platform
version 3.7.0
Toggle main menu visibility
Loading...
Searching...
No Matches
vpUDPServer.h
1
/*
2
* ViSP, open source Visual Servoing Platform software.
3
* Copyright (C) 2005 - 2025 by Inria. All rights reserved.
4
*
5
* This software is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
9
* See the file LICENSE.txt at the root directory of this source
10
* distribution for additional information about the GNU GPL.
11
*
12
* For using ViSP with software that can not be combined with the GNU
13
* GPL, please contact Inria about acquiring a ViSP Professional
14
* Edition License.
15
*
16
* See https://visp.inria.fr for more information.
17
*
18
* This software was developed at:
19
* Inria Rennes - Bretagne Atlantique
20
* Campus Universitaire de Beaulieu
21
* 35042 Rennes Cedex
22
* France
23
*
24
* If you have questions regarding the use of this file, please contact
25
* Inria at visp@inria.fr
26
*
27
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
28
* WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
29
*
30
* Description:
31
* UDP Server
32
*/
33
34
#ifndef _vpUDPServer_h_
35
#define _vpUDPServer_h_
36
37
#include <visp3/core/vpConfig.h>
38
39
// inet_ntop() not supported on win XP
40
#ifdef VISP_HAVE_FUNC_INET_NTOP
41
42
#if !defined(_WIN32) && (defined(__unix__) || defined(__unix) || (defined(__APPLE__) && defined(__MACH__)))
// UNIX
43
#include <netinet/in.h>
44
#include <sys/socket.h>
45
#include <sys/types.h>
46
#else
47
48
#if defined(__clang__)
49
// Mute warning : non-portable path to file '<WinSock2.h>'; specified path differs in case from file name on disk [-Wnonportable-system-include-path]
50
# pragma clang diagnostic push
51
# pragma clang diagnostic ignored "-Wnonportable-system-include-path"
52
#endif
53
54
#include <winsock2.h>
55
56
#if defined(__clang__)
57
# pragma clang diagnostic pop
58
#endif
59
60
#endif
61
62
#include <visp3/core/vpException.h>
63
64
#define VP_MAX_UDP_PAYLOAD 508
65
66
BEGIN_VISP_NAMESPACE
214
class
VISP_EXPORT
vpUDPServer
215
{
216
public
:
217
vpUDPServer
(
int
port);
218
vpUDPServer
(
const
std::string &hostname,
int
port);
219
virtual
~vpUDPServer
();
220
221
int
receive
(std::string &msg,
int
timeoutMs = 0);
222
int
receive
(std::string &msg, std::string &hostInfo,
int
timeoutMs = 0);
223
int
send
(
const
std::string &msg,
const
std::string &hostname,
int
port);
224
225
private
:
226
char
m_buf[VP_MAX_UDP_PAYLOAD];
227
struct
sockaddr_in m_clientAddress;
228
int
m_clientLength;
229
struct
sockaddr_in m_serverAddress;
230
#if !defined(_WIN32) && (defined(__unix__) || defined(__unix) || (defined(__APPLE__) && defined(__MACH__)))
// UNIX
231
int
m_socketFileDescriptor;
232
#else
233
SOCKET m_socketFileDescriptor;
234
WSADATA m_wsa;
235
#endif
236
237
void
init(
const
std::string &hostname,
int
port);
238
};
239
END_VISP_NAMESPACE
240
#endif
241
#endif
vpUDPServer::vpUDPServer
vpUDPServer(int port)
Definition
vpUDPServer.cpp:85
vpUDPServer::send
int send(const std::string &msg, const std::string &hostname, int port)
Definition
vpUDPServer.cpp:302
vpUDPServer::receive
int receive(std::string &msg, int timeoutMs=0)
Definition
vpUDPServer.cpp:207
BEGIN_VISP_NAMESPACE
Definition
vpMbtDistanceCircle.cpp:55
modules
core
include
visp3
core
vpUDPServer.h
Generated by
1.17.0