【问题标题】:python-Network data transferpython-网络数据传输
【发布时间】:2013-01-20 16:56:26
【问题描述】:

刚接触基于网络的编程。

我有 2 台计算机(我知道它们的 IP)。
一台计算机必须使用代理才能连接到 Internet。另一个不通过代理连接。他们不在同一个局域网上。

我的问题
是否可以仅使用它们的 IP(通过代理)连接它们并在它们之间传输数据(至少是文本流)?甚至是插座?

如果没有,是否可以使用其他可以从计算机本地获取的信息来连接它们?

没关系
1. 我必须在两个系统上都安装模块;
2.两台电脑都需要有一个.py文件;

我在一个系统(代理后面的那个)上的 Windows 7 上使用 Python 2.7,但另一个必须与 Windows、Debian 和 Linux 一起工作(并且不使用任何代理)。

编辑 1
代理使用身份验证。

【问题讨论】:

  • 关于防火墙的信息不足。代理本身不会阻止传入连接,仅用作传出流量的桥梁。如果两台计算机上都没有防火墙,那应该是可能的。如果要进行通信,至少必须打开一个传入端口。此外,没有提供有关通信协议和端口的信息。我假设这是通过端口 80 的 http?这是什么服务?
  • @tiago 代理适用于所有协议,并阻止除经过身份验证的连接之外的任何传入连接(不知道它是如何工作的,研究所代理),因此连接必须从“代理”计算机..是的,代理使用端口 80。此外,我可以使用任何协议,但代理存在。而且,至少现在防火墙不是问题。
  • 听起来唯一可能的通信是从代理后面的机器连接到第二台机器。
  • @tiago 这就是我所说的“代理”:) 你有什么想法吗?

标签: python networking


【解决方案1】:

一种可能性是在您的机器上运行一个带有一些网络服务的网络服务器,而不是在代理后面。假设您也可以在此服务器上获得上传文件的机制,您可以在代理后面的机器之间传输数据。

使用 python,你可以例如使用urllib2。要使其使用代理(如果它不透明),您需要设置环境变量HTTP_PROXY,或配置 urrlib2 以使用它(请参阅this question)。

【讨论】:

  • 对不起,忘了说,代理需要认证。
  • 谷歌是你的朋友:stackoverflow.com/questions/34079/…
  • 我应该使用什么,套接字?你说的网络服务器是什么意思?请澄清一下,基于网络的编程新手:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多