0

我正在尝试用 Python 开发一个脚本,它的功能类似于 NetDisturb 实用程序。你们中的一些人可能会问,如果有现成的实用程序,我为什么要这样做,但问题是我想将它集成到网页中。使用这个网页,我可以访问一组我已经知道或存在于后端脚本中的特定接口,并最终降低性能或简单地阻止数据包。

我已经成功了一点,但现在我想在要连接的两个接口之间实现一个套接字连接。我无法使用套接字连接进行全双工通信。我无法决定哪个接口应该作为主接口,哪个接口应该作为从接口。因为当我将其中一个接口设置为 master 时,listenandaccept语句会阻止代码的进一步执行。

使用SOCK_DGRAM套接字而不是SOCK_STREAM帮助我吗?

4

1 回答 1

1

您必须使用非阻塞套接字。 是一个解释如何使用select处理非阻塞套接字(对于初学者我真的可以推荐完整的文章,这是一个好的开始)。替代方案将是多线程架构或asynchore. 如果您还想要一个 GUI,我可以推荐pygtk界面和glib.io_add_watch处理套接字。

但总的来说,我会推荐一些高级框架,如zeromq。第二个高级替代方案是 Twisted,但它有一个非 Python 式的 Java 类 API,并且(IMO)文档记录很差。

于 2012-10-30T07:25:36.763 回答