A client handles negotiating the connection, then sending frames, receiving frames, closing, and reconnecting that connection.
Handles establishing and controlling the TCP connection.
Functions for parsing and encoding frames.