diff options
Diffstat (limited to 'examples/network/fortuneserver.py')
-rw-r--r-- | examples/network/fortuneserver.py | 117 |
1 files changed, 0 insertions, 117 deletions
diff --git a/examples/network/fortuneserver.py b/examples/network/fortuneserver.py deleted file mode 100644 index 790e9df68..000000000 --- a/examples/network/fortuneserver.py +++ /dev/null @@ -1,117 +0,0 @@ - -############################################################################# -## -## Copyright (C) 2013 Riverbank Computing Limited. -## Copyright (C) 2016 The Qt Company Ltd. -## Contact: http://www.qt.io/licensing/ -## -## This file is part of the Qt for Python examples of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:BSD$ -## You may use this file under the terms of the BSD license as follows: -## -## "Redistribution and use in source and binary forms, with or without -## modification, are permitted provided that the following conditions are -## met: -## * Redistributions of source code must retain the above copyright -## notice, this list of conditions and the following disclaimer. -## * Redistributions in binary form must reproduce the above copyright -## notice, this list of conditions and the following disclaimer in -## the documentation and/or other materials provided with the -## distribution. -## * Neither the name of The Qt Company Ltd nor the names of its -## contributors may be used to endorse or promote products derived -## from this software without specific prior written permission. -## -## -## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -## -## $QT_END_LICENSE$ -## -############################################################################# - -"""PySide2 port of the network/fortuneserver example from Qt v5.x""" - -import random - -from PySide2 import QtCore, QtWidgets, QtNetwork - - -class Server(QtWidgets.QDialog): - def __init__(self, parent=None): - super(Server, self).__init__(parent) - - statusLabel = QtWidgets.QLabel() - quitButton = QtWidgets.QPushButton("Quit") - quitButton.setAutoDefault(False) - - self.tcpServer = QtNetwork.QTcpServer(self) - if not self.tcpServer.listen(): - QtWidgets.QMessageBox.critical(self, "Fortune Server", - "Unable to start the server: %s." % self.tcpServer.errorString()) - self.close() - return - - statusLabel.setText("The server is running on port %d.\nRun the " - "Fortune Client example now." % self.tcpServer.serverPort()) - - self.fortunes = ( - "You've been leading a dog's life. Stay off the furniture.", - "You've got to think about tomorrow.", - "You will be surprised by a loud noise.", - "You will feel hungry again in another hour.", - "You might have mail.", - "You cannot kill time without injuring eternity.", - "Computers are not intelligent. They only think they are.") - - quitButton.clicked.connect(self.close) - self.tcpServer.newConnection.connect(self.sendFortune) - - buttonLayout = QtWidgets.QHBoxLayout() - buttonLayout.addStretch(1) - buttonLayout.addWidget(quitButton) - buttonLayout.addStretch(1) - - mainLayout = QtWidgets.QVBoxLayout() - mainLayout.addWidget(statusLabel) - mainLayout.addLayout(buttonLayout) - self.setLayout(mainLayout) - - self.setWindowTitle("Fortune Server") - - def sendFortune(self): - block = QtCore.QByteArray() - out = QtCore.QDataStream(block, QtCore.QIODevice.WriteOnly) - out.setVersion(QtCore.QDataStream.Qt_4_0) - out.writeUInt16(0) - fortune = self.fortunes[random.randint(0, len(self.fortunes) - 1)] - - out.writeString(fortune) - out.device().seek(0) - out.writeUInt16(block.size() - 2) - - clientConnection = self.tcpServer.nextPendingConnection() - clientConnection.disconnected.connect(clientConnection.deleteLater) - - clientConnection.write(block) - clientConnection.disconnectFromHost() - - -if __name__ == '__main__': - - import sys - - app = QtWidgets.QApplication(sys.argv) - server = Server() - random.seed(None) - sys.exit(server.exec_()) |