starting to add new Socket interface

This commit is contained in:
Erik Frojdh
2019-01-23 11:47:13 +01:00
parent 3eca4c0535
commit 99a1c609f1
10 changed files with 212 additions and 21 deletions

View File

@ -0,0 +1,17 @@
#pragma once
#include "DataSocket.h"
#include <sys/socket.h>
#include <sys/types.h>
#include <netdb.h>
#include <string>
namespace sls{
class ClientSocket: public DataSocket{
public:
ClientSocket(const std::string& hostname, uint16_t port_number);
private:
};
}; //namespace sls

View File

@ -0,0 +1,23 @@
#pragma once
#include <cstdint>
#include <cstddef>
namespace sls {
class DataSocket {
public:
DataSocket(int socketId);
int getSocketId() const{
return socketId_;
}
size_t sendData(char *buffer, size_t size);
size_t receiveData(char * buffer, size_t size);
void close();
private:
int socketId_ = -1;
};
}; // namespace sls

View File

@ -0,0 +1,25 @@
#pragma once
#include "DataSocket.h"
#include <cstdint>
#include <netdb.h>
#include <string>
#include <sys/socket.h>
#include <sys/types.h>
namespace sls {
class ServerSocket : public DataSocket {
public:
ServerSocket(int port);
DataSocket accept();
const std::string &getLastClient() { return lastClient_; }
private:
std::string lastClient_ = std::string(INET_ADDRSTRLEN, '\0');
std::string thisClient_ = std::string(INET_ADDRSTRLEN, '\0');
// char lastClient_[INET_ADDRSTRLEN]{};
};
}; //namespace sls