我想知道如何在Python 2.7中创建一个简单的套接字服务器,它可以一次处理和添加/接受多个客户端。我不想使用Twisted或线程,也不想使用任何库;只是Python和套接字。我已经环顾了SoF(stackoverflow-这是一件事吗?)并且发现人们问同样的问题但没有得到明确的答案。
如果您想知道为什么我需要这样做,那是因为我想创建一个简单的数据转发器,它将客户端数据转发到另一台服务器。我想一个非常简单的例子向我展示Server.py,Client1.py和Client2.py正是我需要的。再一次,这是一个非常简单的例子,没有线程,没有扭曲,没有库。
我希望你能帮助我,我对Python很新,我觉得这个项目会让我站起来,而且我从例子中学到了很多东西。
答案 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上的单线程并发编程的其他解决方案: