diff --git a/src/Network/.Logger.cpp.un~ b/src/Network/.Logger.cpp.un~ new file mode 100644 index 0000000..795b256 Binary files /dev/null and b/src/Network/.Logger.cpp.un~ differ diff --git a/src/Network/.Logger.hpp.un~ b/src/Network/.Logger.hpp.un~ new file mode 100644 index 0000000..60544dc Binary files /dev/null and b/src/Network/.Logger.hpp.un~ differ diff --git a/src/Network/.Socket.cpp.un~ b/src/Network/.Socket.cpp.un~ new file mode 100644 index 0000000..09b8494 Binary files /dev/null and b/src/Network/.Socket.cpp.un~ differ diff --git a/src/Network/Logger.cpp b/src/Network/Logger.cpp new file mode 100644 index 0000000..3845a81 --- /dev/null +++ b/src/Network/Logger.cpp @@ -0,0 +1,10 @@ +#include "Logger.hpp" +#include + +void Logger::info(const std::string& msg) { + std::cout << "[INFO] " << msg << "\n"; +} + +void Logger::error(const std::string& msg) { + std::cerr << "[ERROR] " << msg << "\n"; +} diff --git a/src/Network/Logger.cpp~ b/src/Network/Logger.cpp~ new file mode 100644 index 0000000..28087e4 --- /dev/null +++ b/src/Network/Logger.cpp~ @@ -0,0 +1,11 @@ +// Logger.cpp +#include "Logger.hpp" +#include + +void Logger::info(const std::string& msg) { + std::cout << "[INFO] " << msg << "\n"; +} + +void Logger::error(const std::string& msg) { + std::cerr << "[ERROR] " << msg << "\n"; +} diff --git a/src/Network/Logger.hpp b/src/Network/Logger.hpp new file mode 100644 index 0000000..b33bc9d --- /dev/null +++ b/src/Network/Logger.hpp @@ -0,0 +1,8 @@ +#pragma once +#include + +class Logger { +public: + static void info(const std::string& msg); + static void error(const std::string& msg); +}; diff --git a/src/Network/Socket.cpp b/src/Network/Socket.cpp index e49d8b7..69cb9ea 100644 --- a/src/Network/Socket.cpp +++ b/src/Network/Socket.cpp @@ -1,4 +1,52 @@ #include "Socket.hpp" #include +#include Socket::Socket() : m_socket(INVALID_SOCKET) {} + +Socket::~Socket { + if (m_socket != INVALID_SOCKET) { + closesocket(m_socket); + } + WSACleanup(); +}; + +int Socket::init() { + WSADATA wsaData; + if (WSAStartup(MAKEWORD(2,2), &wsaData) != 0) { + std::cerr << "[ERROR] WSAStartup failed: " << WSAGetLastError() << "\n"; + return false; + } + + m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (m_socket == INVALID_SOCKET) { + std::cerr << "[ERROR] socket() failed: " << WSAGetLastError() << "\n"; + return false; + } + + return true; +} + +int Socket::bind(const std::string& address, uint16_t port) { + sockaddr_in service{}; + service.sin_family = AF_INET; + service.sin_addr.s_addr = inet_addr(address.c_str()); + service.sin_port = htons(port); + + if (::bind(m_socket, (SOCKADDR*)&service, sizeof(service)) == SOCKET_ERROR) { + std::cerr << "[ERROR] bind() failed: " << WSAGetLastError() << "\n"; + return false; + } + + return true; +} + +int Socket::listen(int backlog) { + if (::listen(m_socket, backlog) == SOCKET_ERROR) { + std::cerr << "[ERROR] listen() failed: " << WSAGetLastError() << "\n"; + return false; + } + + std::cout << "[INFO] Listening...\n"; + return true; +} diff --git a/src/Network/Socket.cpp~ b/src/Network/Socket.cpp~ new file mode 100644 index 0000000..029b170 --- /dev/null +++ b/src/Network/Socket.cpp~ @@ -0,0 +1,52 @@ +#include "Socket.hpp" +#include +#include + +Socket::Socket() : m_socket(INVALID_SOCKET) {} + +Socket::~Socket { + if (m_socket != INVALID_SOCKET) { + closesocket(m_socket); + } + WSACleanup(); +}; + +bool Socket::initialize() { + WSADATA wsaData; + if (WSAStartup(MAKEWORD(2,2), &wsaData) != 0) { + std::cerr << "[ERROR] WSAStartup failed: " << WSAGetLastError() << "\n"; + return false; + } + + m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + if (m_socket == INVALID_SOCKET) { + std::cerr << "[ERROR] socket() failed: " << WSAGetLastError() << "\n"; + return false; + } + + return true; +} + +bool Socket::bind(const std::string& address, uint16_t port) { + sockaddr_in service{}; + service.sin_family = AF_INET; + service.sin_addr.s_addr = inet_addr(address.c_str()); + service.sin_port = htons(port); + + if (::bind(m_socket, (SOCKADDR*)&service, sizeof(service)) == SOCKET_ERROR) { + std::cerr << "[ERROR] bind() failed: " << WSAGetLastError() << "\n"; + return false; + } + + return true; +} + +bool Socket::listen(int backlog) { + if (::listen(m_socket, backlog) == SOCKET_ERROR) { + std::cerr << "[ERROR] listen() failed: " << WSAGetLastError() << "\n"; + return false; + } + + std::cout << "[INFO] Listening...\n"; + return true; +}