Example #1
0
 def __init__(self,
     endpoint,
     connCallback = None,
     stateCallback = None,
     sockReadCallback = None,
     sockStateCallback = None,
     name = "",
 ):
     """Construct a socket server
     
     Inputs:
     - endpoint: a Twisted endpoint, e.g. twisted.internet.endpoints.TCP4ClientEndpoint
     - connCallback: function to call when a client connects; it receives the following arguments:
                 - sock, a Socket
     - stateCallback: function to call when server changes state; it receives one argument: this server
     - sockReadCallback: function for each server socket to call when it receives data;
         See BaseSocket.addReadCallback for details
     - sockStateCallback: function for each server socket to call when it receives data
         See BaseSocket.addStateCallback for details
     - name: a string to identify this socket; strictly optional
     """
     self._endpoint = endpoint
     self._protocol = None
     self._closeDeferred = None
     BaseServer.__init__(self,
         connCallback = connCallback,
         stateCallback = stateCallback,
         sockReadCallback = sockReadCallback,
         sockStateCallback = sockStateCallback,
         name = name,
     )
     self._numConn = 0
     Timer(0, self._startListening) # let device be fully constructed before listening
Example #2
0
 def __init__(self,
     endpoint,
     connCallback = None,
     stateCallback = None,
     sockReadCallback = None,
     sockStateCallback = None,
     name = "",
 ):
     """Construct a socket server
     
     Inputs:
     - endpoint: a Twisted endpoint, e.g. twisted.internet.endpoints.TCP4ClientEndpoint
     - connCallback: function to call when a client connects; it receives the following arguments:
                 - sock, a Socket
     - stateCallback: function to call when server changes state; it receives one argument: this server
     - sockReadCallback: function for each server socket to call when it receives data;
         See BaseSocket.addReadCallback for details
     - sockStateCallback: function for each server socket to call when it receives data
         See BaseSocket.addStateCallback for details
     - name: a string to identify this socket; strictly optional
     """
     self._endpoint = endpoint
     self._protocol = None
     self._closeDeferred = None
     BaseServer.__init__(self,
         connCallback = connCallback,
         stateCallback = stateCallback,
         sockReadCallback = sockReadCallback,
         sockStateCallback = sockStateCallback,
         name = name,
     )
     self._numConn = 0
     Timer(0, self._startListening) # let device be fully constructed before listening
Example #3
0
 def _clearCallbacks(self):
     """Clear any callbacks added by this class.
     Called just after the socket is closed.
     """
     BaseServer._clearCallbacks(self)
     self._tkSocketWrapper.clearCallbacks()
     self._tkNewConn.deregister()
     self._tkNewConn = None
Example #4
0
 def _clearCallbacks(self):
     """Clear any callbacks added by this class. Called just after the socket is closed.
     """
     BaseServer._clearCallbacks(self)
     self._connCallback = nullCallback
     if self._endpointDeferred:
         self._endpointDeferred.cancel()
         self._endpointDeferred = None
     if self._closeDeferred:
         self._closeDeferred.cancel()
         self._closeDeferred = None
Example #5
0
 def _clearCallbacks(self):
     """Clear any callbacks added by this class. Called just after the socket is closed.
     """
     BaseServer._clearCallbacks(self)
     self._connCallback = nullCallback
     if self._endpointDeferred:
         self._endpointDeferred.cancel()
         self._endpointDeferred = None
     if self._closeDeferred:
         self._closeDeferred.cancel()
         self._closeDeferred = None
Example #6
0
    def __init__(
        self,
        connCallback=nullCallback,
        port=0,
        stateCallback=nullCallback,
        sockReadCallback=nullCallback,
        sockStateCallback=nullCallback,
        name="",
    ):
        """Construct a socket server
        
        Inputs:
        - connCallback: function to call when a client connects; it receives the following arguments:
                    - sock, a Socket
        - port      port number or name of supported service;
                    if 0 then a port is automatically chosen
        - stateCallback: function to call when server changes state; it receives one argument: this server
        - sockReadCallback: function for each server socket to call when it receives data;
            See BaseSocket.setReadCallback for details
        - sockStateCallback: function for each server socket to call when it receives data
            See BaseSocket.addStateCallback for details
        - name: a string to identify this socket; strictly optional
        
        Warning: stateCallback does not get all state changes reliably.
        It gets Listening as soon as the server is created (even though it is not listening yet)
        and the only other notice is closure when close is called.
        """
        self._port = port
        self._connCallback = connCallback

        BaseServer.__init__(
            self,
            connCallback=connCallback,
            stateCallback=stateCallback,
            sockReadCallback=sockReadCallback,
            sockStateCallback=sockStateCallback,
            name=name,
        )

        self._tkNewConn = RO.TkUtil.TclFunc(self._newConnection)
        sockArgs = (
            '-server',
            self._tkNewConn.tclFuncName,
            port,
        )
        self._tkSocketWrapper = _TkSocketWrapper(sockArgs=sockArgs, name=name)
        self._setState(BaseServer.Listening)
Example #7
0
    def __init__(self,
        connCallback = nullCallback,
        port = 0,
        stateCallback = nullCallback,
        sockReadCallback = nullCallback,
        sockStateCallback = nullCallback,
        name = "",
    ):
        """Construct a socket server
        
        Inputs:
        - connCallback: function to call when a client connects; it receives the following arguments:
                    - sock, a Socket
        - port      port number or name of supported service;
                    if 0 then a port is automatically chosen
        - stateCallback: function to call when server changes state; it receives one argument: this server
        - sockReadCallback: function for each server socket to call when it receives data;
            See BaseSocket.setReadCallback for details
        - sockStateCallback: function for each server socket to call when it receives data
            See BaseSocket.addStateCallback for details
        - name: a string to identify this socket; strictly optional
        
        Warning: stateCallback does not get all state changes reliably.
        It gets Listening as soon as the server is created (even though it is not listening yet)
        and the only other notice is closure when close is called.
        """
        self._port = port
        self._connCallback = connCallback

        BaseServer.__init__(self,
            connCallback = connCallback,
            stateCallback = stateCallback,
            sockReadCallback = sockReadCallback,
            sockStateCallback = sockStateCallback,
            name = name,
        )

        self._tkNewConn = RO.TkUtil.TclFunc(self._newConnection)
        sockArgs = (
            '-server', self._tkNewConn.tclFuncName,
            port,
        )
        self._tkSocketWrapper = _TkSocketWrapper(sockArgs=sockArgs, name=name)
        self._setState(BaseServer.Listening)