我正在使用Python中的UDP创建一个简单的套接字服务器,我希望通过让接收方发送ACK来添加一些可靠性概念。我的发件人必须同时发送数据并接收这些ACK。这样做的首选方式是什么?我应该同时发送和接收线程,使用某种非阻塞调用,还是别的什么?
非常感谢任何帮助!
答案 0 :(得分:1)
有两种解决方案:
最简单的解决方案是在stdlib中,SocketServer模块有一个UDPServer - 您可以为不同的消息类型设置处理程序,并以这种方式启用状态机。还有一堆漂亮的mixins用于线程和其他行为。
使用libevent进行异步网络编程的第三方模块gevent是另一种解决方案。
您可以使用scapy在原始套接字级别编写一些内容,但这会给您带来沉重的负担,尽管毫无疑问会有如何做您想做的事情。