Python UDP套接字同时发送和接收数据

时间:2013-11-07 19:00:07

标签: python sockets udp

我正在使用Python中的UDP创建一个简单的套接字服务器,我希望通过让接收方发送ACK来添加一些可靠性概念。我的发件人必须同时发送数据并接收这些ACK。这样做的首选方式是什么?我应该同时发送和接收线程,使用某种非阻塞调用,还是别的什么?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

有两种解决方案:

  • 最简单的解决方案是在stdlib中,SocketServer模块有一个UDPServer - 您可以为不同的消息类型设置处理程序,并以这种方式启用状态机。还有一堆漂亮的mixins用于线程和其他行为。

  • 使用libevent进行异步网络编程的第三方模块gevent是另一种解决方案。

  • 您可以使用scapy在原始套接字级别编写一些内容,但这会给您带来沉重的负担,尽管毫无疑问会有如何做您想做的事情。