PyQt 中访问 HTTP 接口并传递数据

PyQt 中访问 HTTP 接口并传递数据,您可以使用 PyQt 的 QTcpServer 类和 QTcpSocket 类。以下是一个简单的示例代码,演示如何使用 QTcpServer 类和 QTcpSocket 类来访问 HTTP 接口并传递数据:

 

import sys  
from PyQt5.QtCore import QTcpServer, QTimer  
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest  
  
class MyServer(QTcpServer):  
    def __init__(self, host, port):  
        super().__init__()  
        self.host = host  
        self.port = port  
        self.sock = QTcpSocket()  
        self.sock.bind((self.host, self.port))  
        self.sock.listen(1)  
  
    def handleConnection(self, client_socket):  
        print(f"New connection from {client_socket.peerName()}")  
  
    def run(self):  
        while True:  
            try:  
                client_socket, address = self.sock.accept()  
                print(f"New connection from {client_socket.peerName()}")  
                self.handleConnection(client_socket)  
            except:  
                pass  
  
if __name__ == '__main__':  
    server_address = ('', 8000)  
    server = MyServer(server_address, 8000)  
    server.start()  
  
    # 等待 5 秒钟,以便服务器可以接收连接并传递数据  
    QTimer.singleShot(5000, server.handleConnection)

 

 

在这个示例代码中,我们首先导入了必要的模块,包括 QTcpServer 类、QTcpSocket 类和 QNetworkAccessManager。然后,我们创建了一个名为 MyServer 的自定义 QTcpServer 类,并在其构造函数中设置了服务器的主机名和端口号。我们还创建了一个 QTcpSocket 对象,并将其绑定到指定的主机和端口。我们还将 listen 方法设置为 1,表示服务器将始终等待一个客户端连接。

接下来,我们在主函数中创建了一个 MyServer 对象,并启动了服务器。然后,我们使用 QTimer.singleShot 方法等待 5 秒钟,以便服务器可以接收连接并传递数据。

在这个示例代码中,我们首先创建了一个名为 MyServer 的自定义 QTcpServer 类,并在其构造函数中设置了服务器的主机名和端口号。我们还创建了一个 QTcpSocket 对象,并将其绑定到指定的主机和端口。我们还将 listen 方法设置为 1,表示服务器将始终等待一个客户端连接。

接下来,我们在主函数中创建了一个 MyServer 对象,并启动了服务器。然后,我们使用 QTimer.singleShot 方法等待 5 秒钟,以便服务器可以接收连接并传递数据。

最后,我们创建了一个名为 server_address 的列表,其中包含服务器的主机名和端口号。我们还创建了一个名为 server 的 MyServer 对象,并启动了服务器。

####################

posted @ 2023-05-08 07:29  西北逍遥  阅读(384)  评论(0编辑  收藏  举报