VisionEgg.TCPController

Package VisionEgg :: Module TCPController |
[frames] | no frames]

# Module TCPController

source code

    Allows control of parameter values over the network.

    Don't use for realtime control unless you think your network is that
    fast and reliable. Also, this code has not been optimized for speed,
    and I think it is unwise to attempt to change the value of controllers
    in realtime.  In other words, do not design an experiment where, on a
    remote computer, you have determined that a certain amount of time has
    passed, and you require a certain new controller value NOW.  In this
    case, it would be better to use parameter=eval_str() with an if
    statement involving time.

    To control parameters over a network, start a server with an instance
    of TCPServer.  The server spawns an instance of SocketListenController
    for each connected socket.  (Most commonly you will only want
    connection over a single socket.)  The instance of
    SocketListenController handles all communication for that connection
    and serves as a container and (meta) controller for instances of
    TCPController.

    This module contains ABSOLUTELY NO SECURITY FEATURES, and could easily
    allow arbitrary execution of code on your computer. For this reason,
    if you use this module, I recommend operating behind a firewall. This
    could be an inexpensive "routing switch" used for cable modems, which
    would provide the added benefit that your local network would be
    isolated.  This would elimate all traffic not to or from computers on
    the switch and therefore reduce/eliminate packet collisions, decrease
    latency, and providing a network performance and reliability. To
    address security concerns, you could also write code that implements
    IP address checking or other security features.

Author: Andrew Straw <astraw@users.sourceforge.net>

Classes
| TCPServer TCP server creates SocketListenController upon connection.
| SocketListenController Handle connection from remote machine, control TCPControllers.
| TCPController Control a parameter from a network (TCP) connection.

Variables
| __version__ = `VisionEgg.release_name`
| __cvs__ = `'$Revision$'.split() [1]`
| __date__ = `' '.join('$Date$'.split() [1: 3])`