Esempio n. 1
0
 def incomingConnection(self, socket):
     if not self.enabled:
         return
     s = QTcpSocket(self)
     s.setSocketDescriptor(socket)
     sIp = unicode(s.peerAddress().toString())
     sPort = s.peerPort()
     if sIp.startswith(self.ipFilter):
         SimuVis4.Globals.logger.info(unicode(QCoreApplication.translate('RemoteControl',
             'RemoteControl: accepting connection from %s, port %s')), sIp, sPort)
         self.connect(s, SIGNAL('readyRead()'), self.readClient)
         self.connect(s, SIGNAL('disconnected()'), self.discardClient)
     else:
         SimuVis4.Globals.logger.error(unicode(QCoreApplication.translate('RemoteControl',
             'RemoteControl: refusing connection from %s, port %s')), sIp, sPort)
         self.discardClient()
Esempio n. 2
0
class SocketTcpClient(AbstractSocket):
    """Socket que envia e recebe dados via TcpSocket"""
    def __init__(self, portaResponder, parent=None):
        super().__init__(None, portaResponder, parent)

        self._socketClient = QTcpSocket(self)

        self._socketClient.readyRead.connect(self._lerDados)

    def _lerDados(self):
        if self._socketClient.bytesAvailable():
            host = self.ipServidor()
            data = self._socketClient.readData()

            self.dadosRecebidos.emit(host, data)
            
    def enviarDados(self, byteArray):
        self._socketClient.write(byteArray)
            
    def setPara(self, para):
        if self.getPara() != para: 
            super().setPara(para)
            self._conectarServidor(para)

    def _conectarServidor(self, ip):
        if self._socketClient.state() in (QAbstractSocket.ConnectedState, QAbstractSocket.ConnectingState):
            self._desconectarServidor()

        self._socketClient.connectToHost(QHostAddress(ip), self.getPortaResponder())

    def _desconectarServidor(self):
        if self._socketClient.state() == QAbstractSocket.UnconnectedState:
            return True
        
        self._socketClient.disconnectFromHost()
        return self._socketClient.waitForConnected(50)

    def ipServidor(self):
        return self._socketClient.peerAddress()

    def meuIP(self):
        return self._socketClient.localAddress()