# Juliet\include\Core\Networking\TcpListener

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

## AI Description
The `TcpListener` class in the Juliet library is designed to facilitate TCP server functionality. It encapsulates the necessary components for creating, listening on, and accepting connections over a network. The class inherits from the `Socket` class, which provides common socket functionalities such as creation, binding, listening, and closing sockets.

The main purpose of this component is to allow developers to easily set up and manage TCP servers in their applications. It supports both IPv4 and IPv6 addresses, allowing for flexibility in network communication. The `Listen` method allows the server to start accepting connections on a specified port and address, while the `Accept` method is used to accept incoming connections and create new `TcpSocket` instances for handling each connection.

The class also includes error handling mechanisms through logging, which provides feedback on any issues that occur during socket operations. This ensures that developers can quickly identify and resolve problems related to network connectivity.

## Symbols

### Namespace `Juliet`

#### Classes, Structs & Unions
- `class TcpListener`

#### Functions & Methods
- `public: TcpListener::TcpListener()`
- `TcpListener::TcpListener(const TcpListener&)`
- `Status TcpListener::Listen(uint16 port, uint32 address = kAnyIp)`
- `Status TcpListener::Accept(TcpSocket& socket)`
- `void TcpListener::Close()`

