Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
IVT
src
Networking
TCPSocket.h
Go to the documentation of this file.
1
// ****************************************************************************
2
// This file is part of the Integrating Vision Toolkit (IVT).
3
//
4
// The IVT is maintained by the Karlsruhe Institute of Technology (KIT)
5
// (www.kit.edu) in cooperation with the company Keyetech (www.keyetech.de).
6
//
7
// Copyright (C) 2014 Karlsruhe Institute of Technology (KIT).
8
// All rights reserved.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are met:
12
//
13
// 1. Redistributions of source code must retain the above copyright
14
// notice, this list of conditions and the following disclaimer.
15
//
16
// 2. Redistributions in binary form must reproduce the above copyright
17
// notice, this list of conditions and the following disclaimer in the
18
// documentation and/or other materials provided with the distribution.
19
//
20
// 3. Neither the name of the KIT nor the names of its contributors may be
21
// used to endorse or promote products derived from this software
22
// without specific prior written permission.
23
//
24
// THIS SOFTWARE IS PROVIDED BY THE KIT AND CONTRIBUTORS “AS IS” AND ANY
25
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27
// DISCLAIMED. IN NO EVENT SHALL THE KIT OR CONTRIBUTORS BE LIABLE FOR ANY
28
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
33
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
// ****************************************************************************
35
// ****************************************************************************
36
// Filename: TCPSocket.h
37
// Author: Florian Hecht
38
// Date: 08.01.2009
39
// ****************************************************************************
40
41
#ifndef _TCP_SOCKET_H_
42
#define _TCP_SOCKET_H_
43
44
45
46
// this is a simple TCP socket
47
// the socket is in non-blocking, no linger mode, no tcp delay mode
48
class
CTCPSocket
49
{
50
public
:
51
// constructor
52
CTCPSocket
();
53
54
// destructor
55
~CTCPSocket
();
56
57
// public methods
58
59
// activate the socket as a listening socket and
60
// bind it to the default ip address or the one supplied
61
// in 'ip'
62
bool
Listen
(
const
unsigned
char
*ip = 0,
int
port = 0);
63
// accept a connection from a listening socket
64
// this is non-blocking, returns NULL if no new
65
// client is available
66
CTCPSocket
*
Accept
(
unsigned
char
*ip = 0);
67
68
// check if the socket is valid
69
bool
IsOpen
()
const
{
return
m_socket
!= -1; }
70
71
// open a connection to a remote host at ip:port
72
bool
Open
(
const
unsigned
char
*ip,
int
port);
73
// close the socket
74
void
Close
();
75
76
// send data. Returns true if send was successful.
77
bool
Send
(
const
void
*pData,
int
nBytes);
78
79
// receive data. Returns the number of received bytes or -1
80
// in case of a failure. Since the socket is non-blocking
81
// the returned number of bytes can be less than
82
// max_num_bytes. If wait is true, the function will return
83
// after max_num_bytes have been read.
84
int
Recv
(
void
*pData,
int
nMaxBytes,
bool
bWait =
false
);
85
86
87
private
:
88
// private attributes
89
int
m_socket
;
90
bool
m_bListening
;
91
};
92
93
94
95
#endif
/* _TCP_SOCKET_H_ */
CTCPSocket::Recv
int Recv(void *pData, int nMaxBytes, bool bWait=false)
Definition:
TCPSocket.cpp:716
CTCPSocket::Close
void Close()
Definition:
TCPSocket.cpp:615
CTCPSocket::CTCPSocket
CTCPSocket()
Definition:
TCPSocket.cpp:108
CTCPSocket::Listen
bool Listen(const unsigned char *ip=0, int port=0)
Definition:
TCPSocket.cpp:124
CTCPSocket
Definition:
TCPSocket.h:48
CTCPSocket::Accept
CTCPSocket * Accept(unsigned char *ip=0)
Definition:
TCPSocket.cpp:302
CTCPSocket::~CTCPSocket
~CTCPSocket()
Definition:
TCPSocket.cpp:115
CTCPSocket::m_bListening
bool m_bListening
Definition:
TCPSocket.h:90
CTCPSocket::Open
bool Open(const unsigned char *ip, int port)
Definition:
TCPSocket.cpp:464
CTCPSocket::m_socket
int m_socket
Definition:
TCPSocket.h:89
CTCPSocket::Send
bool Send(const void *pData, int nBytes)
Definition:
TCPSocket.cpp:640
CTCPSocket::IsOpen
bool IsOpen() const
Definition:
TCPSocket.h:69
asr_ivt
Author(s): Allgeyer Tobias, Hutmacher Robin, Kleinert Daniel, Meißner Pascal, Scholz Jonas, Stöckle Patrick
autogenerated on Mon Dec 2 2019 03:47:28