def connect(self, serverHost, serverPort, messageCallback = None, requestCallback = None, errorCallback = None): if self.connected: return self.messageCallback = messageCallback self.requestCallback = requestCallback self.errorCallback = errorCallback try: self.serverHost = socket.gethostbyname(serverHost) self.serverPort = serverPort addr = ( self.serverHost, self.serverPort ) self.socket = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) linger = struct.pack('ii', 1, 0) self.socket.setsockopt( socket.SOL_SOCKET, socket.SO_KEEPALIVE, 0 ) self.socket.setsockopt( socket.SOL_SOCKET, socket.SO_LINGER, linger ) self.socket.connect( addr ) # Once connected, the first thing is to obtain the client key, # after that conversation can be started myClientKey = self.socket.recv(2) myClientKey ,= struct.unpack( IPC_KEY_ENCODING, myClientKey ) self.clientKey = int(myClientKey) LOG( self.name + ": Obtained client key: " + repr(self.clientKey), level = LOG_COMM) self.reader = IPCinput( self.name, self.socket, self.clientKey, self ) self.writer = IPCoutput( self.name, self.socket, self.clientKey, self ) # Start the input thread self.reader.start() LOG( self.name + ": Client channel ready", level = LOG_COMM) self.connected = True except BaseException,ex: LOG( self.name + ": Setup failed, disconnecting", LOG_ERROR, level = LOG_COMM) self.disconnect() raise ex
def connect(self, serverHost, serverPort, messageCallback=None, requestCallback=None, errorCallback=None): if self.connected: return self.messageCallback = messageCallback self.requestCallback = requestCallback self.errorCallback = errorCallback try: self.serverHost = socket.gethostbyname(serverHost) self.serverPort = serverPort addr = (self.serverHost, self.serverPort) self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) linger = struct.pack('ii', 1, 0) self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 0) self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, linger) self.socket.connect(addr) # Once connected, the first thing is to obtain the client key, # after that conversation can be started myClientKey = self.socket.recv(2) myClientKey, = struct.unpack(IPC_KEY_ENCODING, myClientKey) self.clientKey = int(myClientKey) LOG(self.name + ": Obtained client key: " + repr(self.clientKey), level=LOG_COMM) self.reader = IPCinput(self.name, self.socket, self.clientKey, self) self.writer = IPCoutput(self.name, self.socket, self.clientKey, self) # Start the input thread self.reader.start() LOG(self.name + ": Client channel ready", level=LOG_COMM) self.connected = True except BaseException, ex: LOG(self.name + ": Setup failed, disconnecting", LOG_ERROR, level=LOG_COMM) self.disconnect() raise ex
class IPCinterfaceClient(object): # Interface name name = None # Callbacks for processing incoming requests, messages and errors messageCallback = None requestCallback = None errorCallback = None # Connectivity data clientKey = None serverHost = None serverPort = None # Input reader and output writer for the server writer = None reader = None # Connected flag connected = False # Connection socket socket = None # Mailbox stores for a while the responses mailbox = None # Outgoing request sequence count reqSeq = None reqLock = None #=========================================================================== def __init__(self, name): self.name = name self.clientKey = None self.serverHost = None self.serverPort = None self.messageCallback = None self.requestCallback = None self.errorCallback = None self.writer = None self.reader = None self.socket = None self.mailbox = Mailbox(name) self.reqSeq = 0 self.reqLock = thread.allocate_lock() self.connected = False #=========================================================================== def connect(self, serverHost, serverPort, messageCallback=None, requestCallback=None, errorCallback=None): if self.connected: return self.messageCallback = messageCallback self.requestCallback = requestCallback self.errorCallback = errorCallback try: self.serverHost = socket.gethostbyname(serverHost) self.serverPort = serverPort addr = (self.serverHost, self.serverPort) self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) linger = struct.pack('ii', 1, 0) self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 0) self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_LINGER, linger) self.socket.connect(addr) # Once connected, the first thing is to obtain the client key, # after that conversation can be started myClientKey = self.socket.recv(2) myClientKey, = struct.unpack(IPC_KEY_ENCODING, myClientKey) self.clientKey = int(myClientKey) LOG(self.name + ": Obtained client key: " + repr(self.clientKey), level=LOG_COMM) self.reader = IPCinput(self.name, self.socket, self.clientKey, self) self.writer = IPCoutput(self.name, self.socket, self.clientKey, self) # Start the input thread self.reader.start() LOG(self.name + ": Client channel ready", level=LOG_COMM) self.connected = True except BaseException, ex: LOG(self.name + ": Setup failed, disconnecting", LOG_ERROR, level=LOG_COMM) self.disconnect() raise ex
class IPCinterfaceClient(object): # Interface name name = None # Callbacks for processing incoming requests, messages and errors messageCallback = None requestCallback = None errorCallback = None # Connectivity data clientKey = None serverHost = None serverPort = None # Input reader and output writer for the server writer = None reader = None # Connected flag connected = False # Connection socket socket = None # Mailbox stores for a while the responses mailbox = None # Outgoing request sequence count reqSeq = None reqLock = None #=========================================================================== def __init__(self, name): self.name = name self.clientKey = None self.serverHost = None self.serverPort = None self.messageCallback = None self.requestCallback = None self.errorCallback = None self.writer = None self.reader = None self.socket = None self.mailbox = Mailbox(name) self.reqSeq = 0 self.reqLock = thread.allocate_lock() self.connected = False #=========================================================================== def connect(self, serverHost, serverPort, messageCallback = None, requestCallback = None, errorCallback = None): if self.connected: return self.messageCallback = messageCallback self.requestCallback = requestCallback self.errorCallback = errorCallback try: self.serverHost = socket.gethostbyname(serverHost) self.serverPort = serverPort addr = ( self.serverHost, self.serverPort ) self.socket = socket.socket( socket.AF_INET, socket.SOCK_STREAM ) linger = struct.pack('ii', 1, 0) self.socket.setsockopt( socket.SOL_SOCKET, socket.SO_KEEPALIVE, 0 ) self.socket.setsockopt( socket.SOL_SOCKET, socket.SO_LINGER, linger ) self.socket.connect( addr ) # Once connected, the first thing is to obtain the client key, # after that conversation can be started myClientKey = self.socket.recv(2) myClientKey ,= struct.unpack( IPC_KEY_ENCODING, myClientKey ) self.clientKey = int(myClientKey) LOG( self.name + ": Obtained client key: " + repr(self.clientKey), level = LOG_COMM) self.reader = IPCinput( self.name, self.socket, self.clientKey, self ) self.writer = IPCoutput( self.name, self.socket, self.clientKey, self ) # Start the input thread self.reader.start() LOG( self.name + ": Client channel ready", level = LOG_COMM) self.connected = True except BaseException,ex: LOG( self.name + ": Setup failed, disconnecting", LOG_ERROR, level = LOG_COMM) self.disconnect() raise ex