【问题标题】:Sending data to and from local app to remote hosted server将数据发送到本地应用程序和从远程托管服务器发送数据
【发布时间】:2013-01-15 01:10:06
【问题描述】:

这里是新手,正在寻找关于我应该为我的特定项目使用哪种技术的建议。不是在寻找代码本身,只是在寻找意见。这是我要实现的目标的丑陋图表:

[本地 Python 应用程序] [托管网络服务器]

因此,从上面来看,我正在寻找允许我的本地应用程序与托管 Web 服务器通信的技术。这是陷阱:我不能使用套接字,因为我使用的是共享托管计划,而我的托管公司对此进行了限制。 IRC 也被拒绝。我知道,这有点棘手。

那么我还有选择吗?以下是我的一些想法:

  1. 本地应用程序和服务器都轮询 MySQL 数据库以进行更改,并且两者都可以进行更改(但是我真的不喜欢轮询的想法,而且似乎不是一个安全的解决方案)
  2. 执行某种远程 http post 以将数据发送到服务器(可能吗?),然后轮询服务器上的某些文件以获取命令
  3. 在本地运行 Web 服务器,在本地将数据写入文本文件,然后托管服务器轮询文件以进行更改(出于安全原因,我真的试图避免在本地运行 Web 服务器)。

无需投票即可获得任何想法?谢谢。

【问题讨论】:

  • 与 MySQL 服务器通信涉及使用套接字。制作 HTTP POST 涉及使用套接字。任何要连接到本地 Web 服务器的应用程序都将使用套接字来执行此操作。你确定不能使用套接字吗?

标签: python sockets networking shared-hosting


【解决方案1】:

也许 paramiko 可以很好地解决您的问题。我在半年前的某个项目中使用了 paramiko,这是我与另一台计算机/服务器连接并执行一个简单的 python 文件的代码部分:

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
IP = '...'
username = '...'
password = '...'
ssh.connect(IP, username, password)
stdin, stdout, stderr = ssh.exec_command('python hello.py')
ssh.close()

stdinstdoutsdterr 是您执行的命令的输入/输出列表。

这里有一些关于 paramiko 的好消息:http://jessenoller.com/2009/02/05/ssh-programming-with-paramiko-completely-different/

【讨论】:

  • 谢谢,这实际上是一个非常好的主意,并且该软件包捆绑在我的虚拟主机上。但是,无论出于何种原因,我都无法与 paramiko 建立 SSH 连接(即使我通过 PuTTY 使用了相同的凭据并且它工作得很好)。也许我的主机阻止了连接?我会再调查一下。
  • 别忘了这个:ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()),这可能是问题所在。你读过博客吗?其实已经很完整了
【解决方案2】:

不确定我是否正确理解了您的所有规格,但我首先想到的是使用RESTful webservice。

Here 你可以找到一个 StackOverflow 问题,它提供了一些关于使用 python 实现它们的见解。

【讨论】:

  • 谢谢,我得再研究一下。看起来有点整洁。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-21
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-21
相关资源
最近更新 更多