gpt4 book ai didi

c++ - SOCKS 5 和 UDP (C/C++)

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:59:13 25 4
gpt4 key购买 nike

我知道 SOCKS 5 支持 UDP,我已经了解了在与 SOCKS 代理协商时发送/接收的数据包的结构。

我不清楚的一件事是设置向代理注册以发送/接收 UDP 数据包的过程。

具体来说,我最大的问题是,“用于协商 UDP 关联关系的 SOCKS 代理的连接是否仍然使用 TCP/IP 建立?”。换句话说,“您最终会使用 TCP/IP 套接字来接收通过 SOCKS 代理路由的 UDP 数据包吗?”

我想,如果您使用 TCP/IP 连接来建立 UDP 通信的路径,那么您可能会错过建立 UDP 通信的全部要点。但是,另一方面,如果协商是使用 UDP 进行的(并产生 UDP 套接字),那么当您的应用程序关闭并且不再需要代理“记住”您时,关系将如何终止?

我一直在网上寻找示例...但找不到任何东西。任何帮助(尤其是示例)将不胜感激。

最佳答案

https://www.rfc-editor.org/rfc/rfc1928

“基于 UDP 的客户端必须将其数据报发送到 UDP 中继服务器UDP ASSOCIATE 回复中 BND.PORT 指示的 UDP 端口请求”

但是

“UDP 关联终止时,UDP 的 TCP 连接关联请求到达时终止。”

我实际上尝试过一次,但失败了,因为很多“socks5”代理实现实际上并不支持完整的协议(protocol)。所以我建议首先设置一个工作测试用例(找到一个应用程序将支持 socks5 udp 代理,以及它实际工作的代理)。然后任何网络嗅探器都会告诉您它是如何工作的(如果确实如此)。

关于c++ - SOCKS 5 和 UDP (C/C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5012122/

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