# Juliet\include\Core\Networking\TcpSocket

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

## AI Description
The `TcpSocket` class in the Juliet library is designed to facilitate TCP communication over a network. It inherits from the base `Socket` class and provides methods for sending and receiving data packets. The primary purpose of this component is to handle low-level TCP socket operations, including opening connections, sending data, and receiving responses. The class uses a scratch allocator to manage the buffer used for sending data, ensuring that the packet size is correctly transmitted before actual data is sent. Additionally, it includes error handling mechanisms to manage network issues and partial sends.

## Symbols

### Namespace `Juliet`

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

#### Functions & Methods
- `public: TcpSocket::TcpSocket()`
- `TcpSocket::TcpSocket(const TcpSocket&)`
- `RequestStatus TcpSocket::Send(NetworkPacket& packet)`
- `RequestStatus TcpSocket::Send(ByteBuffer buffer)`
- `Status TcpSocket::Receive(NetworkPacket& outPacket)`

