[PyKDE] error(int) signal from QTcpSocket not firing

Ewald de Wit erdewit at zonnet.nl
Sun Jan 28 11:26:17 GMT 2007

In PyQt4 the error(int) signal from QTcpSocket seems to never fire anymore.
For example, when trying to connect to a non-existing host, nothing
happens after calling connectToHost. In PyQt3 this would result in
an error(int) signal being raised that indicated a 'Connection refused'.

Please see the test script below on how to reproduce this.

  --  Ewald

import sys
import signal
import PyQt4.Qt as qt
import PyQt4.QtNetwork as qtnetwork

class SocketTest( object ):

    def __init__( self, host, port ):
        self.socket = qtnetwork.QTcpSocket()

        qt.QObject.connect( self.socket, qt.SIGNAL( 'error(int)' ),
                self.onError ) # This is not working anymore.
        qt.QObject.connect( self.socket, qt.SIGNAL( 'connected()' ),
                self.onConnected )
        qt.QObject.connect( self.socket, qt.SIGNAL( 'disconnected()' ),
                self.onDisconnected )

        self.socket.connectToHost( host, port )

    def onError( self, i ):
        print 'onError', self, self.socket.errorString()

    def onDisconnected( self ):
        print 'onDisconnected'

    def onConnected( self ):
        print 'onConnected'

signal.signal( signal.SIGINT, signal.SIG_DFL )
app = qt.QApplication( sys.argv )
test = SocketTest( 'dummyhostname', 80 )
#test = SocketTest( 'localhost', 80 )

More information about the PyQt mailing list