# Juliet\include\Core\Networking\Socket

## Source Files
- Header: `Juliet\include\Core\Networking\Socket.h`
- Source: `Juliet\src\Core\Networking\Socket.cpp`

## AI Description
The `Socket` class in the Juliet project is designed to manage network connections, providing a high-level interface for sending and receiving data over TCP or UDP protocols. It encapsulates socket operations such as creation, handling of socket errors, and managing the underlying socket handle. The class ensures that sockets are properly closed when they are no longer needed, preventing resource leaks.

## Symbols

### Namespace `Juliet`

#### Classes, Structs & Unions
- `class Socket`
- `struct Socket::RequestStatus`

#### Enums
- `enum class Socket::Status`
- `enum class Socket::Protocol`

#### Functions & Methods
- `public: Socket::~Socket()`
- `Socket::Socket(Socket&& other)`
- `Socket::Socket(const Socket&)`
- `bool Socket::IsValid() const`
- `explicit Socket::Socket(Protocol protocol)`
- `void Socket::Create()`
- `void Socket::CreateFromHandle(SocketHandle handle)`
- `void Socket::Close()`

