Python程序向服务器发送FIX消息不起作用

时间:2017-04-25 21:02:04

标签: python sockets fix-protocol

我现在正致力于将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()

0 个答案:

没有答案