Added some interfaces
Modified ProtocolSocket to send messages in a queue so that the overhead is not placed on the calling thread