- class QTcpServer¶
The
QTcpServer
class provides a TCP-based server. More…Inherited by:
QSslServer
Synopsis¶
Methods¶
def
__init__()
def
close()
def
errorString()
def
isListening()
def
listen()
def
pauseAccepting()
def
proxy()
def
serverAddress()
def
serverError()
def
serverPort()
def
setProxy()
Virtual methods¶
Signals¶
def
acceptError()
def
newConnection()
Note
This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE
Detailed Description¶
This class makes it possible to accept incoming TCP connections. You can specify the port or have
QTcpServer
pick one automatically. You can listen on a specific address or on all the machine’s addresses.Call
listen()
to have the server listen for incoming connections. ThenewConnection()
signal is then emitted each time a client connects to the server. When the client connection has been added to the pending connection queue using theaddPendingConnection()
function, thependingConnectionAvailable()
signal is emitted.Call
nextPendingConnection()
to accept the pending connection as a connectedQTcpSocket
. The function returns a pointer to aQTcpSocket
inConnectedState
that you can use for communicating with the client.If an error occurs,
serverError()
returns the type of error, anderrorString()
can be called to get a human readable description of what happened.When listening for connections, the address and port on which the server is listening are available as
serverAddress()
andserverPort()
.Calling
close()
makesQTcpServer
stop listening for incoming connections.Although
QTcpServer
is mostly designed for use with an event loop, it’s possible to use it without one. In that case, you must usewaitForNewConnection()
, which blocks until either a connection is available or a timeout expires.See also
QTcpSocket
Fortune Server Threaded Fortune Server Torrent ExampleConstructs a
QTcpServer
object.parent
is passed to the QObject constructor.See also
- acceptError(socketError)¶
- Parameters:
socketError –
SocketError
This signal is emitted when accepting a new connection results in an error. The
socketError
parameter describes the type of error that occurred.See also
- addPendingConnection(socket)¶
- Parameters:
socket –
QTcpSocket
This function is called by
incomingConnection()
to add thesocket
to the list of pending incoming connections.Note
Don’t forget to call this member from reimplemented
incomingConnection()
if you do not want to break the Pending Connections mechanism. This function emits thependingConnectionAvailable()
signal after the socket has been added.- close()¶
Closes the server. The server will no longer listen for incoming connections.
See also
- errorString()¶
- Return type:
str
Returns a human readable description of the last error that occurred.
See also
- hasPendingConnections()¶
- Return type:
bool
Returns
true
if the server has a pending connection; otherwise returnsfalse
.- incomingConnection(handle)¶
- Parameters:
handle –
qintptr
This virtual function is called by
QTcpServer
when a new connection is available. ThesocketDescriptor
argument is the native socket descriptor for the accepted connection.The base implementation creates a
QTcpSocket
, sets the socket descriptor and then stores theQTcpSocket
in an internal list of pending connections. FinallynewConnection()
is emitted.Reimplement this function to alter the server’s behavior when a connection is available.
If this server is using
QNetworkProxy
then thesocketDescriptor
may not be usable with native socket functions, and should only be used withsetSocketDescriptor()
.Note
If another socket is created in the reimplementation of this method, it needs to be added to the Pending Connections mechanism by calling
addPendingConnection()
.Note
If you want to handle an incoming connection as a new
QTcpSocket
object in another thread you have to pass thesocketDescriptor
to the other thread and create theQTcpSocket
object there and use itssetSocketDescriptor()
method.- isListening()¶
- Return type:
bool
Returns
true
if the server is currently listening for incoming connections; otherwise returnsfalse
.See also
- listen([address=QHostAddress.Any[, port=0]])¶
- Parameters:
address –
QHostAddress
port – int
- Return type:
bool
Tells the server to listen for incoming connections on address
address
and portport
. Ifport
is 0, a port is chosen automatically. Ifaddress
isAny
, the server will listen on all network interfaces.Returns
true
on success; otherwise returnsfalse
.See also
- listenBacklogSize()¶
- Return type:
int
Returns the backlog queue size of to be accepted connections.
See also
- maxPendingConnections()¶
- Return type:
int
Returns the maximum number of pending accepted connections. The default is 30.
- newConnection()¶
This signal is emitted every time a new connection is available, regardless of whether it has been added to the pending connections queue or not.
- nextPendingConnection()¶
- Return type:
Returns the next pending connection as a connected
QTcpSocket
object.The socket is created as a child of the server, which means that it is automatically deleted when the
QTcpServer
object is destroyed. It is still a good idea to delete the object explicitly when you are done with it, to avoid wasting memory.None
is returned if this function is called when there are no pending connections.Note
The returned
QTcpSocket
object cannot be used from another thread. If you want to use an incoming connection from another thread, you need to overrideincomingConnection()
.See also
- pauseAccepting()¶
Pauses accepting new connections. Queued connections will remain in queue.
See also
- pendingConnectionAvailable()¶
This signal is emitted every time a new connection has been added to the pending connections queue.
- proxy()¶
- Return type:
Returns the network proxy for this socket. By default
DefaultProxy
is used.See also
- resumeAccepting()¶
Resumes accepting new connections.
See also
- serverAddress()¶
- Return type:
Returns the server’s address if the server is listening for connections; otherwise returns
Null
.See also
- serverError()¶
- Return type:
Returns an error code for the last error that occurred.
See also
- serverPort()¶
- Return type:
int
Returns the server’s port if the server is listening for connections; otherwise returns 0.
See also
- setListenBacklogSize(size)¶
- Parameters:
size – int
Sets the backlog queue size of to be accepted connections to
size
. The operating system might reduce or ignore this value. By default, the queue size is 50.- setMaxPendingConnections(numConnections)¶
- Parameters:
numConnections – int
Sets the maximum number of pending accepted connections to
numConnections
.QTcpServer
will accept no more thannumConnections
incoming connections beforenextPendingConnection()
is called. By default, the limit is 30 pending connections.Clients may still able to connect after the server has reached its maximum number of pending connections (i.e.,
QTcpSocket
can still emit the connected() signal).QTcpServer
will stop accepting the new connections, but the operating system may still keep them in queue.- setProxy(networkProxy)¶
- Parameters:
networkProxy –
QNetworkProxy
Warning
This section contains snippets that were automatically translated from C++ to Python and may contain errors.
Sets the explicit network proxy for this socket to
networkProxy
.To disable the use of a proxy for this socket, use the
NoProxy
proxy type:server.setProxy(QNetworkProxy.NoProxy)
See also
- setSocketDescriptor(socketDescriptor)¶
- Parameters:
socketDescriptor –
qintptr
- Return type:
bool
Sets the socket descriptor this server should use when listening for incoming connections to
socketDescriptor
. Returnstrue
if the socket is set successfully; otherwise returnsfalse
.The socket is assumed to be in listening state.
See also
- socketDescriptor()¶
- Return type:
qintptr
Returns the native socket descriptor the server uses to listen for incoming instructions, or -1 if the server is not listening.
If the server is using
QNetworkProxy
, the returned descriptor may not be usable with native socket functions.See also
- waitForNewConnection(msec)¶
- Parameters:
msec – int
- Return type:
(retval, timedOut)
Waits for at most
msec
milliseconds or until an incoming connection is available. Returnstrue
if a connection is available; otherwise returnsfalse
. If the operation timed out andtimedOut
is notNone
, *``timedOut`` will be set to true.This is a blocking function call. Its use is disadvised in a single-threaded GUI application, since the whole application will stop responding until the function returns. waitForNewConnection() is mostly useful when there is no event loop available.
The non-blocking alternative is to connect to the
newConnection()
signal.If msec is -1, this function will not time out.