Python简单多客户端套接字服务器
我想知道如何在Python2.7中创建一个简单的套接字服务器,它可以同时处理和添加/接受多个客户端。我不想使用扭曲、线程或任何库;只有Python和套接字。我环顾了一下SoF(stackoverflow,这是一件事吗?),发现有人问同样的问题,但没有得到明确的答案 如果您想知道为什么我需要这样做,那是因为我想创建一个简单的数据转发器,将客户机数据转发到另一台服务器。我认为一个非常简单的示例向我展示Server.py、Client1.py和Client2.py正是我所需要的。同样,这只是一个非常简单的例子,没有线程,没有扭曲,没有库 我希望你能帮助我,我对Python还相当陌生,我觉得这个项目将帮助我站稳脚跟,我从示例中学到了很多东西 考虑使用(适用于python 3.3及更高版本) Asyncio是单线程并发编程的新python标准: 该模块提供了使用协程编写单线程并发代码、通过套接字和其他资源多路复用I/O访问、运行网络客户端和服务器以及其他相关原语的基础结构 本文档提供了几个示例:Python简单多客户端套接字服务器,python,Python,我想知道如何在Python2.7中创建一个简单的套接字服务器,它可以同时处理和添加/接受多个客户端。我不想使用扭曲、线程或任何库;只有Python和套接字。我环顾了一下SoF(stackoverflow,这是一件事吗?),发现有人问同样的问题,但没有得到明确的答案 如果您想知道为什么我需要这样做,那是因为我想创建一个简单的数据转发器,将客户机数据转发到另一台服务器。我认为一个非常简单的示例向我展示Server.py、Client1.py和Client2.py正是我所需要的。同样,这只是一个非常简
如果您还没有准备好迁移到Python3,那么可以使用asyncio for Python2的移植。这两个模块之间存在一些差异,如下所示:
- 将asyncio替换为trollius(或将import trollius用作asyncio)
- 取代…的收益率。。。以(…)的收益率
- 将来自[]的收益率替换为来自(无)的收益率
- 在协同程序中,将返回res替换为提升返回(res)
python 2.7上单线程并发编程的其他解决方案:
- :一个基于协同路由的Python网络库,使用
- :内置异步套接字库()
选择或任何库您指的是第三方库还是标准库?因此,如果您想使用sockets
,您需要在python中导入socket
。如果您这样做了,您还可以导入SocketServer,我认为这个模块将提供一些您可以使用的东西:我正在使用Python2.7,我计划保持这种方式。检查我将要对OP@RoyalScripters编辑。