我正在尝试使用允许qt脚本的C ++程序来传递外部python脚本。它的目标是从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,但是我不确定从哪里开始获取snipet像我有的蟒蛇 有这个question,但对我来说没有用的线索......而且有samples但是我无法使其发挥作用。
什么是更好的,Python中的客户端或服务器? 我可以找到一个qtscript示例吗?
先谢谢!
答案 0 :(得分: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