0

我正在尝试将外部 python 脚本与允许 qt-scripting 的 C++ 程序进行通信。其目标是从 python 代码部分控制 C++ 程序(使用其 qtscript api 函数)。

我知道如何在 python 中创建一个基本的套接字服务器/客户端:

#Server code

import socket

server = socket.socket()
server.bind (("localhost", 8080))
server.listen(10)
client, client_adress = server.accept()

while True:
    message= cliente.recv(1024)
    if message== "quit":
        break
    print "Received:", message
    client.send(message)

print "Goodby"
cliente.close()
server.close()

...

#client code

import socket
client = socket.socket()
client.connect(("localhost", 8080))

while True:
    message = raw_input(">" )
    client.send(message)
    if message == "quit":
        break

print "Goodby"

但是我在 qtscript 中找不到太多关于如何做到这一点的信息(没有 javascript 经验),我知道有QTcpSocket Class,但我不确定从哪里开始获得像我拥有的​​ python 的片段。有这个问题,但它对我的问题没有用。有这个样本,但我不能让它工作。

Python 中的客户端或服务器哪个更好?我可以找到一个 qtscript 示例吗?

4

1 回答 1

0

听起来您在 Qt C++ 程序中运行了一个 QtScript (Javascript) 解释器。并且您希望 Python 客户端能够向其发送命令。最简单(但不是最安全!)的方法是让 Python 客户端使用基本 TCP 或 HTTP POST 连接,发送可执行的 Javascript 程序,并让 C++ 程序在内部执行它。

这样,Python 端就很简单了。对于 C++ 端,您首先创建一个QTcpServer,然后当它接收到数据时,读取所有数据并将字符串传递给QScriptEngine::evaluate(). 使用方法QTcpServer见这里:http ://doc.qt.io/qt-5/qtnetwork-fortuneserver-example.html

于 2016-04-22T04:22:02.617 回答