Python中的网络应用和GUI

1 投票
4 回答
1200 浏览
提问于 2025-04-15 23:40

我正在写一个可以通过网络发送文件的应用程序,我想开发一个自定义的协议,这样我就可以在功能上不受限制(HTTP协议不太合适,最接近的可能是BitTorrent协议)。

我尝试过使用Twisted,做了一个不错的应用,但Twisted里有个bug导致我的图形界面卡住,所以我得换个框架或策略。

你有什么建议吗?直接使用原始的套接字和GTK的主循环(这个工具包里有类似于选择的功能)会不会太难了?

在不同的线程中运行两个主循环可行吗?

在这里寻求建议。

4 个回答

1

如果你的应用程序和bittorrent有点像,为什么不去看看Deluge的源代码呢?你可以在这个链接找到它:http://deluge-torrent.org/。Deluge是用Python写的,它使用了bittorrent协议,并且有一个GTK的用户界面。

1

有两个线程:一个是用来处理图形界面的,另一个是用来发送和接收数据的。使用Tkinter这个工具包来做这个事情是完全可以的。你不需要使用twisted或者其他任何外部库和工具包,Tkinter自带的功能就足够完成这个任务了。

1

免责声明:我对网络应用的经验不多。

不过,原始套接字其实并不难理解和使用,特别是如果你不太在意优化的话。优化确实需要更多的考虑。不过,使用GTK和原始套接字应该是相对简单的。尤其是你已经使用过twisted框架,我记得它只是把一些比较复杂的套接字管理细节进行了抽象处理。

撰写回答