我现在正致力于将FIX消息传输到服务器并获得响应的项目。问题是,我认为我成功发送了测试请求,但没有得到回应。此外,从服务器端,这家伙告诉我,我发送的消息搞砸了。
以下是我的代码,希望有人可以帮我摆脱这个。提前致谢。由于这只是一个测试,因此消息是硬编码的。
import socket
from time import sleep
import sys
SOH = chr(1)
def checksum(str):
res = 0
for i in xrange(len(str)):
res += ord(str[i])
return res % 256
def client():
bodylength = len('35=1' + SOH + '49=IDMYSIDE' + SOH + '56=IDSERVER' + SOH + '34=1' + SOH + '52=20170425-12:50:32' + SOH + '112=123' + SOH)
packet = '8=FIX.4.2' + SOH + '9=' + str(bodylength) + SOH + '35=1' + SOH + '49=IDMYSIDE' + SOH + '56=IDSERVER' + SOH + '34=1' + SOH + '52=20170425-12:50:32' + SOH + '112=123' + SOH
sums = str(checksum(packet))
sums = '0'*(3-len(sums)) + sums
packet = packet + '10=' + sums + SOH
print packet
HOST, PORT = 'xx.xx.xx.x', 1000
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((HOST, PORT))
bytessend = sock.sendall(packet)
print bytessend
# I reveive nothig here
sleep(3)
reply = sock.recv(2560)
print "recvd: ", reply
client()