일단 서버구현 끝

This commit is contained in:
2025-04-22 23:46:08 +09:00
parent 3a3cdc130a
commit 89cac9c54f
15 changed files with 254 additions and 90 deletions

View File

@@ -0,0 +1,15 @@
#pragma once
#include "precomp.hpp"
namespace Chattr {
struct Address {
union {
struct sockaddr sockaddr;
struct sockaddr_in sockaddr_in;
struct sockaddr_in6 sockaddr_in6;
};
socklen_t length;
};
}

View File

@@ -1,5 +1,6 @@
#pragma once
#include "precomp.hpp"
#include "Address.hpp"
namespace Chattr {
@@ -9,22 +10,27 @@ public:
Socket(int domain, int type, int protocol);
~Socket();
void init(int domain, int type, int protocol);
operator SOCKET() const;
void move(const SOCKET);
void bind(int __fd, const sockaddr *__addr);
void bind(int __fd, const sockaddr *__addr, socklen_t __len);
void bind(const sockaddr *__addr);
void bind(const sockaddr *__addr, socklen_t __len);
//IPV4
void bind(int __fd, const sockaddr_in *__addr);
void bind(int __fd, const sockaddr_in *__addr, socklen_t __len);
void bind(const sockaddr_in *__addr);
void bind(const sockaddr_in *__addr, socklen_t __len);
//IPV6
void bind(int __fd, const sockaddr_in6 *__addr);
void bind(int __fd, const sockaddr_in6 *__addr, socklen_t __len);
void bind(const sockaddr_in6 *__addr);
void bind(const sockaddr_in6 *__addr, socklen_t __len);
Socket(const Socket&) = delete;
Socket& operator=(const Socket&) = delete;
private:
struct Address bindAddr;
protected:
bool valid_ = false;
SOCKET sock_ = INVALID_SOCKET;
};

View File

@@ -0,0 +1,15 @@
#pragma once
#include "Socket.hpp"
#include "precomp.hpp"
namespace Chattr {
class TCPSocket : public Socket {
public:
using Socket::init;
void init(int domain);
void listen(int __n);
void accept(TCPSocket& newSock, Address& addr);
};
}