2017-10-24 3 views
0

Ich versuche Telegramm des authorization sample zu folgen, aber bekommen keine Antwort vom Server:Warum bekomme ich keine Antwort von Telegram DC?

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

Warum?

+0

Sie * wirklich * sollten nicht handgemachte Pakete verwenden, um mit Telegram zu sprechen. Der erste Schritt besteht darin, einen Code zu haben, der die TL-Sprache in Ihren Fall in Python übersetzen kann. Es gibt viele vorhandene Bibliotheken, die mit der API interagieren (auch für Python), die Sie sich vielleicht ansehen sollten. – Lonami

+0

Sie versuchen, eine SSL-Verbindung herzustellen, siehe [hier] (https://stackoverflow.com/questions/26851034/openening-a-ssl-socket-connection-in-python) – whenisnever

+0

@whenisnever nope. Telegramm ist nur das bozotische. – habnabit

Antwort

0

Ja, @habnabit, es waren die TCP-Header, die fehlten. Ich dachte, dass sie von Python behandelt wurden, da ich diesen Teil in anderen Clients nicht gesehen habe. Hab es in Telethon gefunden, danke für den Tipp.

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