Socket
The concept of a socket in ZeroMQ is completely novel. A ZeroMQ socket
differs from a traditional TCP socket in the following ways (but not limited to):
- A socket sends and receives atomic messages; messages are guaranteed to either be transmitted in their entirety, or not transmitted at all.
- A socket send and receive messages asynchronously.
- A socket can transmit messages over many supported transports, including
TCP. - Incoming and outgoing messages can be queued and transmitted asynchronously by a background I/O thread.
- A socket can be connected to zero or more peers at any time.
- A socket can be bound to zero or more endpoints at any time. Each bound endpoint can listen to zero or more peers.
- Peer reconnection and disconnection is handled in the background.
- Support for many authentication and encryption strategies via Mechanism.