【问题标题】:python tcp over http emulationpython tcp over http 仿真
【发布时间】:2013-05-25 09:16:50
【问题描述】:

使用 python 2.7.x 通过 HTTP 建立模拟 TCP 连接的最简单方法是什么?

服务器:pythonanywhere(或一些类似的)免费托管上的 python 程序,不提供专用 IP。客户端:Windows PC 上的 python 程序。

连接是通过 multiprocessing.BaseManager 建立的,在同一台机器上测试服务器和客户端时工作正常。

有没有一种方法可以在 HTTP 上通过最少的代码添加来完成这项工作?

附:我需要这个用于网格计算项目。 附言我是 python & 网络 & web 编程的新手,几天前开始学习它。

找到这个:http://code.activestate.com/recipes/577643-transparent-http-tunnel-for-python-sockets-to-be-u/。似乎正是我需要的,虽然我不明白如何在服务器/客户端调用 setup_http_proxy() 。两边都试过 setup_http_proxy("my.proxy", 8080) ,还是不行。

还发现了这个:http://docs.python.org/2/library/httplib.html。 HTTPConnection.set_tunnel 方法实际上是做什么的?我可以用它来解决问题吗?

【问题讨论】:

    标签: python http tunnel


    【解决方案1】:

    在客户端使用:

    setup_http_proxy("THE_ADRESS", THE_PORT_NUMBER) # address of the Proxy, port the Proxy is listening on 
    

    代码包装了套接字以对代理设置执行初始 HTTP CONNECT 请求,以获取 HTTP 代理来为您代理 TCP 连接,但为此您需要一个兼容的代理(大多数不允许您打开 TCP除非是用于 HTTPS 的连接)。 HTTPConnection.set_tunnel 基本上做同样的事情。

    对于您的用例,一个在免费主机上运行的程序,这是行不通的。您的免费主机可能只允许您处理 http 请求,而不是长时间运行的进程侦听 tcp 连接(代码假定)。 您应该重新考虑您需要隧道和组织您的通信以发布数据(并轮询来自服务器的消息,除非它们是您发布的内容的答案)。或者,您可以购买 VPS 主机,让您更好地控制可以远程托管的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-29
      • 2020-08-24
      • 2017-01-11
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 2011-09-29
      • 2012-07-22
      相关资源
      最近更新 更多