为什么我没有收到Telegram DC的任何回复?

时间:2017-10-24 16:17:42

标签: python telegram mtproto

我正在尝试关注Telegram的authorization sample,但没有收到服务器的任何回复:

msg = """

0000 | 00 00 00 00 00 00 00 00 4A 96 70 27 C4 7A E5 51
0010 | 14 00 00 00 78 97 46 60 3E 05 49 82 8C CA 27 E9
0020 | 66 B3 01 A4 8F EC E2 FC

"""

import re
msg = re.sub('\d{4} \| ', '', msg)
msg = re.sub('\s+', '', msg)
msg = bytes.fromhex(msg)

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('149.154.167.40', 443))
s.send(msg)
print(s.recv(1024))  # prints: b''
s.close()

为什么?

1 个答案:

答案 0 :(得分:0)

是的,@ habnabit,缺少的是TCP标头。我认为它们是由Python处理的,因为我还没有在其他客户端中看到过这一部分。在Telethon中找到它,感谢您的提示。

import struct
import zlib
msg = struct.pack('<ii', len(msg) + 12, counter) + msg
msg += struct.pack('<I', zlib.crc32(msg))