50 "listenTCP()::Socket creation failed");
63 "listenTCP()::Set socket failed");
70 "listenTCP()::Socket created");
75 servAddr.sin_addr.s_addr = htonl(INADDR_ANY);
81 "listenTCP()::Socket binding failed: " +
82 std::string(strerror(errno)));
90 "listenTCP()::Socket listen failed");
97 "listenTCP()::Socket listening");
105 socklen_t clnLen =
sizeof(sockaddr_in);
111 (
struct sockaddr *) &(
clnAddr),
112 (socklen_t *) &clnLen)) < 0) {
115 "acceptTCP()::Socket connection not accepted");
122 "acceptTCP()::Socket accept connection from " +
123 std::string(inet_ntoa(
clnAddr.sin_addr)));
140 if ((recvMsgSize = read(clnSock, buffer_msg,
MAX_READ_LEN)) < 0) {
143 "readFromTCP(int)::Read from socket failed");
148 if (recvMsgSize == 0) {
151 "readFromTCP(int)::Socket disconnected");
153 shutdown(clnSock, SHUT_RDWR);
159 Packet *p = Packet::alloc();
160 hdr_cmn *ch = HDR_CMN(p);
165 "readFromTCP(int)::Socket payload received : " +
166 std::string(buffer_msg, recvMsgSize));
168 for (
int i = 0; i < recvMsgSize; i++)
170 ch->size() = recvMsgSize;
virtual void readFromTCP(int clnSock)
Method that reads a TCP byte stream from external application and converts it to a Packet.
std::atomic< bool > receiving
int servSockDescr
Socket descriptor for server.
int servPort
Socket server port.
virtual void incrPktsPushQueue()
Increase the number of DATA packets stored in the Server queue.
std::mutex socket_mutex
Mutex associated with the socket rx thread.
virtual bool listenTCP()
Method that binds the listening TCP socket.
virtual void acceptTCP()
Method that puts in place a listening TCP socket.
int clnSockDescr
Socket descriptor for client.
struct sockaddr_in servAddr
Server address.
static uint MAX_READ_LEN
Maximum size (bytes) of a single read of the socket.
struct sockaddr_in clnAddr
Client address.
virtual void printOnLog(Logger::LogLevel log_level, const std::string &module, const std::string &message) const override
Method to send the log message to the logger.
std::queue< Packet * > queuePckReadTCP
Atomic boolean variable that controls the socket rx looping thread.
Content header of DATA packet.
char payload_msg[MAX_LENGTH_PAYLOAD]
Message payload.
uint16_t & payload_size()