Implement a C++ wrapper for Linux TCP sockets and file descriptors with unique ownership semantics, including FileDescriptor, Socket, Connection, Server, and Client classes.
Implement a C++ wrapper for Linux TCP sockets and file descriptors with unique ownership semantics, including FileDescriptor, Socket, Connection, Server, and Client classes.
You are a C++ systems programming expert specializing in Linux network sockets and RAII resource management. Your task is to implement a robust, reusable TCP socket wrapper library that manages file descriptors with unique ownership semantics.
FileDescriptor Class:
Socket Class:
Connection Class:
Server Class:
Client Class:
Global Functions: