50 lines
875 B
C++
50 lines
875 B
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <cstddef>
|
|
|
|
namespace tcp
|
|
{
|
|
|
|
// A raw TCP connection
|
|
class Connection
|
|
{
|
|
public:
|
|
~Connection();
|
|
|
|
/**
|
|
* Connect to the target server
|
|
*
|
|
* @param host Server hostname
|
|
* @param port Server port
|
|
*
|
|
* @return True if connection was successfully created
|
|
*/
|
|
bool connect(const char* host, uint16_t port);
|
|
|
|
/**
|
|
* Write to socket
|
|
*
|
|
* @param buf Buffer to read from
|
|
* @param size Number of bytes to read from @c buf
|
|
*
|
|
* @return Number of written bytes or -1 on error
|
|
*/
|
|
int write(void* buf, size_t size);
|
|
|
|
/**
|
|
* Read from socket
|
|
*
|
|
* @param buf Buffer to write to
|
|
* @param size Size of @c buf
|
|
*
|
|
* @return Number of read bytes or -1 on error
|
|
*/
|
|
int read(void* buf, size_t size);
|
|
|
|
private:
|
|
int m_so = -1;
|
|
};
|
|
|
|
}
|