Python程序向服务器发送修复消息

2024-06-18 04:15:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在正在进行一个项目,将修复消息传输到服务器并获得响应。问题是我认为我成功地发送了一个测试请求,但是没有得到响应。另外,在服务器端,那个家伙告诉我,我发的信息一团糟。在

以下是我的代码,希望有人能帮我摆脱困境。提前谢谢。由于这只是一个测试,因此消息是硬编码的。在

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()

Tags: import消息lenpacketdefressleepsocket