Python 非阻塞套接字和可靠的 UDP

Posted

技术标签:

【中文标题】Python 非阻塞套接字和可靠的 UDP【英文标题】:Python nonblocking sockets and reliable UDP 【发布时间】:2013-11-07 06:22:13 【问题描述】:

对于研究生级别的项目,我被要求在 Python 中创建可靠的 UDP 实现。我有使用 Python 进行套接字编程的经验,但主要是 TCP 或“即发即弃”类型的 UDP 东西。我基本上必须创建带有 TCP 拥塞控制的 UDP。我的主要问题是:

如何同时发送数据包和接收确认?我认为问题在于阻塞 socket.recv() 调用。这通常是如何处理的?

任何有关此方面的帮助或有关实施可靠 UDP 的一般建议都会非常有帮助!

【问题讨论】:

【参考方案1】:

http://twistedmatrix.com/trac/ 非常适合您的需求,不过对于新手来说并不容易。

这个博客是一个很好的资源: http://krondo.com/?page_id=1327

【讨论】:

谢谢。我会看看这个。不幸的是,我不能使用任何外部库,但它可能会让我对如何处理我的情况有所了解。 hmmm,这种情况你最好看看docs.python.org/2/howto/sockets.html#non-blocking-sockets老好select函数 我实际上只是在看那个。谢谢! 在我走之前还有一个链接...github.com/noiseoverip/python-rudp/tree/master/Rudp

以上是关于Python 非阻塞套接字和可靠的 UDP的主要内容,如果未能解决你的问题,请参考以下文章

python_11(网络编程)

非阻塞套接字实现的文件传输程序

非阻塞 UDP 写入返回的字节数是不是少于请求的字节数?

非阻塞标准输出[C/Linux]

如果在超时发生之前没有收到数据,Python 的 socket.recv() 会为非阻塞套接字返回啥?

PHP Streams 中的阻塞和非阻塞模式