【问题标题】:where to start programing a server application [closed]从哪里开始编写服务器应用程序[关闭]
【发布时间】:2010-11-23 07:04:41
【问题描述】:

问题:学习编写服务器应用程序的良好起点在哪里?


信息:

我正在考虑编写一个分布式计算系统,以收集我大学校园周围闲置的几百台计算机的空闲周期。有些系统很接近,但不能完全满足我需要的所有要求。 (最值得注意的是,所有交易都必须通过 SSH 进行,因为网络会阻止其他一切)所以我决定编写自己的应用程序。部分是为了得到我想要的,但也是为了经验。

重要功能:

  1. 用python编写
  2. 所有通过 ssh 进行的交易(通过简单使用 pexpect 解决)
  3. 服务器需要能够承受潜在的数百次点击。我稍后会优化,重点是模拟会话。

我觉得那些尝试和完成的事情并不是荒谬的。但是对于最后一个,我什至不确定从哪里开始。我实际上已经完成了前两个并编写了一个程序,该程序将登录到我的服务器,然后将 ls -l 打印到本地文件。所以这并不难。但是我如何附加多个客户端,要求服务器同时处理所有模拟数据?显然,感觉就像线程在这里发挥作用,但我确定不止于此。

这就是我的问题所在。甚至从哪里开始研究如何编写服务器应用程序?我是否使用了正确的措辞?互联网上可以免费获取哪些信息和/或此类信息有哪些书籍?再次,特别是 python,但朝着正确方向迈出的一步比我现在的位置多一步。

附言这似乎比 serverfault 更适合 stackoverflow。如果我错了,请纠正我。

【问题讨论】:

  • 这看起来几乎正是我想要的。您能否提供更多方向并将其作为答案? ^_^
  • 对于这个问题的任何答案对于 SO 格式来说都太宽泛了。

标签: python


【解决方案1】:

查看以下关于 SO 的讨论

还可以在

查看精彩的介绍

【讨论】:

    【解决方案2】:

    Twisted 是一个事件循环框架,在 Python 中常用来进行网络处理。

    【讨论】:

      【解决方案3】:

      这是一种方法。

      1. 用 Python 编写一个“代理”。代理安装在各种计算机上。它可以在本地处理您需要的任何事情。它使用urllib2 向服务器发出RESTful HTTP 请求。它要么发布数据,要么请求工作或任何应该做的事情。

      2. 用 Python 编写一个“服务器”。服务器安装在一台计算机上。这是使用wsgiref 编写的,它是一个简单的基于 WSGI 的服务器,用于处理来自分散在校园内的各种代理的请求。

      虽然这需要安装代理,但它非常非常简单。它可以做得非常非常安全(使用 HTTP Digest Authentication)。代理的权限定义了漏洞的级别。如果代理在权限相对较少的帐户中运行,则非常安全。代理不应以 root 身份运行,并且不应允许代理的帐户使用 susudo

      【讨论】:

      • 如果我的问题有点令人困惑,我很抱歉。这是非常有用的信息,但我正在寻找编写服务器应用程序的介绍信息,并以我的项目为例。你几乎完全描述了我将要做什么。客户端安装在(不幸的是)从单个服务器请求信息的 Windows 机器上。您的建议的问题是校园网会阻止 HTTP 请求。 ssh 是唯一允许的网络协议。我想我可以挖隧道,但当我到达时我会穿过那座桥。感谢您的提示。
      • @Narcolapser:“校园网会阻塞HTTP请求”?真的吗?你怎么知道? HTTP 可能是地球上使用最多的单一协议。你是说没有网络浏览器可以工作?任何地方都没有网络服务器?
      • 这是一个登录系统。您可能听说过“Cisco Clean Access Agent”吗?它是您安装在计算机上的程序(适用于 windows 和 mac,适用于 linux 的 java web applet),它检查您的注册表是否有最新的更新和防病毒,如果您迟到让您更新,则会将您推送到更新隔离区.系统要求您登录到计算机并登录到 cisco。使用无需登录的校园计算机需要“远程访问协议”,因为他们说的是 RDP、VNC 和 SSH。我的服务器显然也没有 GUI,所以我无法登录 Cisco。所以http被阻止了。 ://
      • @Narcolapser:“我的服务器显然也没有 GUI,所以我无法登录 Cisco。所以 http 被阻止”几乎没有意义。任何计算机都可以是 HTTP 服务器。任何。登录到某个随机的 Cisco 服务器与使用 HTTP 和 RESTful Web 服务创建应用程序无关。任何计算机都可以提供 HTTP。而且 HTTP 被阻止的可能性真的不大,因为没有人可以使用网络浏览器。
      • 您不太了解思科在做什么。这是一个隔离系统。在您通过 Cisco 的 Clean Access Agent (CAA) 登录之前,不允许您的计算机连接到网络(这意味着是的,您不能使用 Web 浏览器)。我的服务器可以作为 HTTP 服务器正常工作,只是它命令它必须登录到 CAA。如果它没有登录,除了前面提到的协议之外的所有东西都会被阻止。随机的 cisco 服务器控制着我们访问互联网的能力。如果我们没有登录,就没有互联网。我的服务器无头运行,没有 gui,没有登录。有意义吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-15
      • 2013-07-29
      • 1970-01-01
      • 2013-08-02
      • 2013-06-15
      • 2011-03-23
      相关资源
      最近更新 更多