forked from thestk/stk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TcpClient.h
65 lines (49 loc) · 2.24 KB
/
TcpClient.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#ifndef STK_TCPCLIENT_H
#define STK_TCPCLIENT_H
#include "Socket.h"
namespace stk {
/***************************************************/
/*! \class TcpClient
\brief STK TCP socket client class.
This class provides a uniform cross-platform TCP socket client
interface. Methods are provided for reading or writing data
buffers to/from connections.
TCP sockets are reliable and connection-oriented. A TCP socket
client must be connected to a TCP server before data can be sent
or received. Data delivery is guaranteed in order, without loss,
error, or duplication. That said, TCP transmissions tend to be
slower than those using the UDP protocol and data sent with
multiple \e write() calls can be arbitrarily combined by the
underlying system.
The user is responsible for checking the values
returned by the read/write methods. Values
less than or equal to zero indicate a closed
or lost connection or the occurence of an error.
by Perry R. Cook and Gary P. Scavone, 1995--2023.
*/
/***************************************************/
class TcpClient : public Socket
{
public:
//! Default class constructor creates a socket client connection to the specified host and port.
/*!
An StkError will be thrown if a socket error occurs during instantiation.
*/
TcpClient( int port, std::string hostname = "localhost" );
//! The class destructor closes the socket instance, breaking any existing connections.
~TcpClient();
//! Connect the socket client to the specified host and port and returns the resulting socket descriptor.
/*!
If the socket client is already connected, that connection is
terminated and a new connection is attempted. An StkError will be
thrown if a socket error occurs.
*/
int connect( int port, std::string hostname = "localhost" );
//! Write a buffer over the socket connection. Returns the number of bytes written or -1 if an error occurs.
int writeBuffer(const void *buffer, long bufferSize, int flags = 0);
//! Read a buffer from the socket connection, up to length \e bufferSize. Returns the number of bytes read or -1 if an error occurs.
int readBuffer(void *buffer, long bufferSize, int flags = 0);
protected:
};
} // stk namespace
#endif