QTScript 和 Python 之间的套接字通信
Sockets comunication between QTScript and Python
我正在尝试将外部 python 脚本与允许 qt 脚本的 C++ 程序进行通信。其目标是从 python 代码部分控制 C++ 程序(使用其 qtscript api 函数)。
我知道如何在 python 中创建基本套接字 server/client:
#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 那样的代码片段。
有这个 question, but it was not useful to my problem. And there is this samples 但我无法让它工作。
Python 中的客户端或服务器哪个更好?
我能找到一个 qtscript 示例吗?
听起来您的 Qt C++ 程序中有一个 QtScript (Javascript) 解释器 运行。并且您希望 Python 客户端能够向其发送命令。最简单(但不是最安全!)的方法是让 Python 客户端使用基本 TCP 或 HTTP POST 连接,发送一个可执行的 Javascript 程序,并让 C++ 程序在内部执行它。
这样 Python 方面就很简单了。对于 C++ 端,您首先创建一个 QTcpServer
,然后当它接收到数据时,读取所有数据并将字符串传递给 QScriptEngine::evaluate()
. For how to use QTcpServer
, see here: http://doc.qt.io/qt-5/qtnetwork-fortuneserver-example.html
我正在尝试将外部 python 脚本与允许 qt 脚本的 C++ 程序进行通信。其目标是从 python 代码部分控制 C++ 程序(使用其 qtscript api 函数)。
我知道如何在 python 中创建基本套接字 server/client:
#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 那样的代码片段。 有这个 question, but it was not useful to my problem. And there is this samples 但我无法让它工作。
Python 中的客户端或服务器哪个更好? 我能找到一个 qtscript 示例吗?
听起来您的 Qt C++ 程序中有一个 QtScript (Javascript) 解释器 运行。并且您希望 Python 客户端能够向其发送命令。最简单(但不是最安全!)的方法是让 Python 客户端使用基本 TCP 或 HTTP POST 连接,发送一个可执行的 Javascript 程序,并让 C++ 程序在内部执行它。
这样 Python 方面就很简单了。对于 C++ 端,您首先创建一个 QTcpServer
,然后当它接收到数据时,读取所有数据并将字符串传递给 QScriptEngine::evaluate()
. For how to use QTcpServer
, see here: http://doc.qt.io/qt-5/qtnetwork-fortuneserver-example.html