gpt4 book ai didi

Python TLS 握手 XMPP

转载 作者:太空宇宙 更新时间:2023-11-04 09:14:52 27 4
gpt4 key购买 nike

我正在尝试使用 python 连接到 XMPP 服务器。我有要连接的 XML,只是不确定如何进行连接的 TLS 部分?我可以找到很多 HTTPS TLS 示例和 XMPP 示例,只是不知道如何将两者放在一起。

有没有人有使用 TLS 在 python 中进行 XMPP 连接的示例?如果有帮助,我正在尝试连接到 talk.google.com。

最佳答案

首先,使用别人现有的 XMPP library请不要自己写。已经有很多了。从 SleekXMPP 开始.

要回答您的问题,请调用 ssl.wrap_socket当你想做 Start-TLS 时。例如:

import socket
import ssl

sock = socket.create_connection(("example.com", 5222))
sock.write("""<stream:stream
to='example.com'
version='1.0'
xml:lang='en'
xmlns='jabber:client'
xmlns:stream='http://etherx.jabber.org/streams'>""")
sock.recv(1000) # reads the stream:stream and stream:features. Obviously bad code, to get the point accross
sock.write("<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>")
sock.recv(1000) # read the proceed
ssl_sock = ssl.wrap_socket(sock)
ssl_sock.write("""<stream:stream
to='example.com'
version='1.0'
xml:lang='en'
xmlns='jabber:client'
xmlns:stream='http://etherx.jabber.org/streams'>""")

等等

关于Python TLS 握手 XMPP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10925220/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com