我已经创建了一个套接字文件,类似于以下内容,并希望该套接字的输出必须由MQL5读取。请查看以下Python代码:
daemon.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()
客户端.py
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的套接字输出。
编辑
我只想要reply
在MQL5中被接受为一个变量,这个变量是由daemon.py
生成的。我该如何做呢?比如说,我希望MQL5应该像上面的示例一样打印来自Python的响应,如果可能的话,我希望MQL5应该把dummy_reply
作为字符串变量输出。
使用ZeroMQ有可能实现吗?
我想用MQL5代替Python来完成client.py
。请帮帮我。