mlisp/clib/tcpnet.h

24 lines
719 B
C++

#pragma once
#include <string>
#include <vector>
class TcpNet {
public:
TcpNet();
// starts listening on port
int server(int port, const std::function<std::pair<bool, std::string>(std::string)>& process_request) const;
// writes request to server on address:port and returns response
[[nodiscard]] std::string client(const std::string &address, int portno, const std::string &request) const;
[[nodiscard]] std::vector<std::string> client(const std::string &address, int portno, const std::vector<std::string> &requests) const;
private:
static constexpr bool USE_LENGTH_HEADER = true;
static std::string read_from_socket(int sockfd) ;
static void write_to_socket(int sockfd, const std::string &str) ;
};