Files
NP_Midterm/include/Socket/Socket.hpp
2025-04-28 02:11:27 +09:00

43 lines
889 B
C++

#pragma once
#include "Socket/Address.hpp"
namespace Chattr {
struct Address;
class Socket {
public:
Socket() = default;
Socket(int domain, int type, int protocol);
~Socket();
void init(int domain, int type, int protocol);
void destruct();
operator SOCKET() const;
void move(const SOCKET);
Socket& move();
void bind(sockaddr *__addr);
void bind(sockaddr *__addr, socklen_t __len);
//IPV4
void bind(sockaddr_in *__addr);
void bind(sockaddr_in *__addr, socklen_t __len);
//IPV6
void bind(sockaddr_in6 *__addr);
void bind(sockaddr_in6 *__addr, socklen_t __len);
Socket(const Socket&) = delete;
Socket(Socket&&);
Socket& operator=(const Socket&) = delete;
Socket& operator=(Socket&&);
struct Address bindAddr = {};
protected:
bool valid_ = false;
SOCKET sock_ = INVALID_SOCKET;
};
}