ACT-CV - Machine Vision for Cognitive Modeling
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
tcpclient
TcpClient.h
Go to the documentation of this file.
1
// -*- mode: c++; indent-tabs-mode: nil; c-basic-offset: 4; coding: iso-8859-1; -*-
2
3
/*
4
ACT-CV - Machine Vision for Cognitive Modeling
5
Copyright (c) 2008 Marc Halbruegge
6
7
This program is free software; you can redistribute it and/or modify
8
it under the terms of the GNU General Public License as published by
9
the Free Software Foundation; either version 2 of the License, or
10
(at your option) any later version.
11
12
This program is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
GNU General Public License for more details.
16
17
You should have received a copy of the GNU General Public License
18
along with this program; if not, write to the Free Software
19
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
26
#ifndef TCPCLIENT_H_
27
#define TCPCLIENT_H_
28
29
#include <stdexcept>
30
31
#ifdef _WINDOWS
32
# include <windows.h>
33
# include <winsock.h>
34
#else
35
// Linux
36
# define SOCKET int
37
# include <sys/types.h>
38
# include <sys/socket.h>
39
# include <netinet/in.h>
40
# include <netinet/tcp.h>
41
# include <arpa/inet.h>
42
# include <pthread.h>
43
# include <netdb.h>
44
#endif
45
46
48
class
ClientError
:
public
std::runtime_error {
49
public
:
50
ClientError
(
const
char
*s) : std::runtime_error(s) {
51
}
52
};
53
55
class
ActCvClient
{
56
protected
:
58
SOCKET
sock
;
59
61
bool
isConnected
;
62
63
public
:
64
ActCvClient
() :
isConnected
(false) {};
65
~ActCvClient
() {
66
if
(
isConnected
) {
67
#ifdef _WINDOWS
68
closesocket(
sock
);
69
#else
70
close(
sock
);
71
#endif
72
isConnected
=
false
;
73
}
74
}
75
85
void
ConnectTo
(
const
char
* name,
int
port);
86
94
void
SendKey
(
int
keyCode);
95
102
void
ReadData
();
103
};
104
105
#endif
/*TCPCLIENT_H_*/
ACT-CV - Machine Vision for Cognitive Modeling
© 2015
Marc Halbruegge
(actcvlibrary@googlemail.com)