Visual Servoing Platform
version 3.7.0
Toggle main menu visibility
Loading...
Searching...
No Matches
vpUDPClient.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 Client
32
*/
33
34
#ifndef VP_UDP_CLIENT_H
35
#define VP_UDP_CLIENT_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
185
class
VISP_EXPORT
vpUDPClient
186
{
187
public
:
188
vpUDPClient
();
189
vpUDPClient
(
const
vpUDPClient
&client);
190
vpUDPClient
(
const
std::string &hostname,
int
port);
191
virtual
~vpUDPClient
();
192
193
vpUDPClient
&
operator=
(
const
vpUDPClient
&client);
194
197
void
init
(
const
std::string &hostname,
int
port);
198
199
int
receive
(std::string &msg,
int
timeoutMs = 0);
200
int
receive
(
void
*msg,
size_t
len,
int
timeoutMs = 0);
201
int
send
(
const
std::string &msg);
202
int
send
(
const
void
*msg,
size_t
len);
204
205
protected
:
206
bool
m_is_init
;
207
208
private
:
209
char
m_buf[VP_MAX_UDP_PAYLOAD];
210
struct
sockaddr_in m_serverAddress;
211
int
m_serverLength;
212
#if !defined(_WIN32) && (defined(__unix__) || defined(__unix) || (defined(__APPLE__) && defined(__MACH__)))
// UNIX
213
int
m_socketFileDescriptor;
214
#else
215
SOCKET m_socketFileDescriptor;
216
WSADATA m_wsa;
217
#endif
218
219
void
close();
220
};
221
END_VISP_NAMESPACE
222
#endif
223
#endif
vpUDPClient::receive
int receive(std::string &msg, int timeoutMs=0)
Definition
vpUDPClient.cpp:222
vpUDPClient::init
void init(const std::string &hostname, int port)
Definition
vpUDPClient.cpp:145
vpUDPClient::operator=
vpUDPClient & operator=(const vpUDPClient &client)
Definition
vpUDPClient.cpp:90
vpUDPClient::m_is_init
bool m_is_init
Definition
vpUDPClient.h:206
vpUDPClient::vpUDPClient
vpUDPClient()
Definition
vpUDPClient.cpp:77
vpUDPClient::send
int send(const std::string &msg)
Definition
vpUDPClient.cpp:328
BEGIN_VISP_NAMESPACE
Definition
vpMbtDistanceCircle.cpp:55
modules
core
include
visp3
core
vpUDPClient.h
Generated by
1.17.0