首页 文章

在Python中处理来自多个套接字的传入数据

提问于
浏览
2

背景:我有一个当前的实现,它接收来自python中大约120个不同套接字连接的数据 . 在我当前的实现中,我使用每个独立的套接字连接处理每个独立的套接字连接 . 这些线程中的每一个都解析数据并最终将其存储在共享锁定字典中 . 这些套接字不具有统一的数据速率,一些套接字获得的数据比其他套接字更多 .

问题:这是在python中处理传入数据的最佳方法,还是python有更好的方法来处理每个线程的多个套接字?

3 回答

  • 1

    使用异步方法会让你更快乐 . 作为一个众所周知的应用程序的完美实现的一个例子Tornado是完美的 . 您也可以轻松地将Tornado的ioloop用于Web服务器之外的其他事情 .

    还有其他库,如gevent;但我相信Tornado是一个更好的地方,因为它提供了循环和在它上面实现的Web服务器,作为如何很好地使用循环的一个很好的例子 .

  • 3

    如果你正在使用线程,那基本上就是你的方式 .

    另一种方法是使用各种异步网络库之一,例如TwistedTornadoGEvent .

  • 2

    正如Asynchronous UDP Socket Reading中提到的那样,asyncoro可以用来有效地处理许多异步套接字 . asyncoro在你的问题中的另一个好处是你不需要担心锁定共享字典,因为asyncoro最多只有一个协程在任何时候执行并且没有强制抢占 .

相关问题