Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MQL5中接受Python生成的套接字的输出_Python_Python 3.x_Sockets_Zeromq_Mql5 - Fatal编程技术网

在MQL5中接受Python生成的套接字的输出

在MQL5中接受Python生成的套接字的输出,python,python-3.x,sockets,zeromq,mql5,Python,Python 3.x,Sockets,Zeromq,Mql5,我创建了一个类似于以下内容的套接字文件,并希望套接字的输出必须由MQL5读取。请参阅以下Python代码: 守护进程.py import socket #import arcpy def actual_work(): #val = arcpy.GetCellValue_management("D:\dem-merged\lidar_wsg84", "-95.090174910630012 29.973962146120652", "") #return str(val)

我创建了一个类似于以下内容的套接字文件,并希望套接字的输出必须由MQL5读取。请参阅以下Python代码:

守护进程.py

import socket
#import arcpy

def actual_work():
    #val = arcpy.GetCellValue_management("D:\dem-merged\lidar_wsg84", "-95.090174910630012 29.973962146120652", "")
    #return str(val)
    return 'dummy_reply'


def main():
    sock = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
    try:
        sock.bind( ('127.0.0.1', 6666) )

        while True:
            data, addr = sock.recvfrom( 4096 )
            reply = actual_work()
            sock.sendto(reply, addr)
    except KeyboardInterrupt:
        pass
    finally:
        sock.close()


if __name__ == '__main__':
    main()
import socket
import sys


def main():
    sock = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
    sock.settimeout(1)
    try:
        sock.sendto('', ('127.0.0.1', 6666))
        reply, _ = sock.recvfrom(4096)
        print reply
    except socket.timeout:
        sys.exit(1)
    finally:
        sock.close()


if __name__ == '__main__':
    main()
client.py

import socket
#import arcpy

def actual_work():
    #val = arcpy.GetCellValue_management("D:\dem-merged\lidar_wsg84", "-95.090174910630012 29.973962146120652", "")
    #return str(val)
    return 'dummy_reply'


def main():
    sock = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
    try:
        sock.bind( ('127.0.0.1', 6666) )

        while True:
            data, addr = sock.recvfrom( 4096 )
            reply = actual_work()
            sock.sendto(reply, addr)
    except KeyboardInterrupt:
        pass
    finally:
        sock.close()


if __name__ == '__main__':
    main()
import socket
import sys


def main():
    sock = socket.socket( socket.AF_INET, socket.SOCK_DGRAM )
    sock.settimeout(1)
    try:
        sock.sendto('', ('127.0.0.1', 6666))
        reply, _ = sock.recvfrom(4096)
        print reply
    except socket.timeout:
        sys.exit(1)
    finally:
        sock.close()


if __name__ == '__main__':
    main()
请帮助我通过MQL5接受套接字的输出

已编辑

我只希望在MQL5上接受变量中的
reply
,该变量由
daemon.py
生成。我怎么能做到?假设我希望MQL5打印Python的响应,如上例所示,我希望MQL5尽可能以字符串变量的形式输出
dummy\u reply

ZeroMQ有任何可能性吗


我希望使用MQL5而不是Python来完成
client.py
。请帮助我。

请找到一个运行示例。重要的元素是在发送应答之前创建有效负载的字节对象,而不是字符串。套接字对象只生成和接收字节


导入套接字
导入线程
导入系统
def实际工作(数据):
打印(数据)
返回b'ACK'
def守护进程():
sock=socket.socket(socket.AF_INET,socket.sock_DGRAM)
sock.setsockopt(socket.SOL_socket,socket.SO_REUSEADDR,1)
袜子装订('127.0.0.1',6666))
打印(“在udp%s上侦听:%i”%('127.0.0.1',6666))
尝试:
尽管如此:
数据,addr=sock.recvfrom(4096)
ack=实际工作(数据)
sock.sendto(确认,地址)
例外情况除外,如e:
打印(e)
最后:
sock.close()
def client():
sock=socket.socket(socket.AF_INET,socket.sock_DGRAM)
sock.settimeout(1)
尝试:
短袜发送到(b'payload',('127.0.0.1',6666))
答复u=sock.recvfrom(4096)
打印(答复)
除了socket.timeout作为e:
打印(e)
系统出口(1)
最后:
sock.close()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
线程=线程。线程(目标=守护进程)
thread.start()
客户()
客户()
客户()
客户()
#在这里发布kill线程
thread.join()

这里有基本的UDP客户端/服务器示例代码。这与MQL5有什么关系?您希望与MQL5通信的具体内容是什么?@AKX我只希望在MQL5上接受变量中的
应答
,这是由
daemon.py
生成的。我怎么能做到?假设我希望MQL5打印python的响应,如上例所示,我希望MQL5在可能的情况下以字符串变量的形式输出
dummy\u reply
。您得到了我想要的结果,或者您有任何问题。请随便问。有人能帮我吗?请告诉我。太遗憾了!。。没有人能回答我的问题。我想每次我申请时,我的奖金都被浪费了。