# The Python IoTCommunicator Class

> The IoTCommunicator object takes care of all interactions with the underlying network layers (sockets) between the IoT server and devices.

> IoTCommunicator(...) | Constructor: create an IoTCommunicator instance with a list of optional parameters
> listen(address, sock_params) | Act as listener communicator
> stop_listen(address) | Close the listen socket on the specified IP `address`
> find_conn(agent_id) | Return the connection object found by `agentId`
> stop() | Stop the communicator
> destroy() | Destroy the underlying communicator object
> Properties:
> on_connect | The IoTCommunicator `on_connect` callback (A Python callable object is expected)
> on_recieve_id | The IoTCommunicator `on_receive` callback (A Python callable object is expected)
> on_ack | The IoTCommunicator `on_ack` callback (A Python callable object is expected)
> on_disconnect | The IoTCommunicator `on_disconnect` callback (A Python callable object is expected)
> on_destroy | The IoTCommunicator `on_destroy` callback (A Python callable object or `NULL` is expected)
> connections | Return a list of the active connections for this communicator