Python简单多客户端套接字服务器

时间:2015-08-20 08:31:46

标签: python

我想知道如何在Python 2.7中创建一个简单的套接字服务器,它可以一次处理和添加/接受多个客户端。我不想使用Twisted或线程,也不想使用任何库;只是Python和套接字。我已经环顾了SoF(stackoverflow-这是一件事吗?)并且发现人们问同样的问题但没有得到明确的答案。

如果您想知道为什么我需要这样做,那是因为我想创建一个简单的数据转发器,它将客户端数据转发到另一台服务器。我想一个非常简单的例子向我展示Server.py,Client1.py和Client2.py正是我需要的。再一次,这是一个非常简单的例子,没有线程,没有扭曲,没有库。

我希望你能帮助我,我对Python很新,我觉得这个项目会让我站起来,而且我从例子中学到了很多东西。

1 个答案:

答案 0 :(得分:0)

考虑使用asyncio(适用于python 3.3及更高版本)。

Asyncio是单线程并发编程的新python标准:

  

该模块提供了使用协程编写单线程并发代码,通过套接字和其他资源复用I​​ / O访问,运行网络客户端和服务器以及其他相关原语的基础结构。

文档提供了一些示例:

如果你还没准备好迁移到python 3,你可以使用trollius,asyncio for python 2的移植。这两个模块之间存在一些差异,如{{3}中所列}:

  
      
  • 用trollius替换asyncio(或使用import trollius as asyncio)
  •   
  • 用...从(...)
  • 中取代收益率   
  • 将产量从[]替换为产量来自(无)
  •   在协程中
  • ,用return Return(res)替换return res
  •   

python 2.7上的单线程并发编程的其他解决方案: