如何在Python程序中使用UDP套接字传输文件
我有一个程序,它由两个进程组成,通常在不同的机器上运行。一个是显示服务器,另一个是控制器。目前它们通过UDP数据报套接字进行通信,因为丢失一个数据包只会导致跳过一帧,而TCP套接字太慢。这些计算机知道彼此的IP地址和用于UDP通信的端口。
我想找一种简单的方法在Python中从一个机器传文件到另一个机器。我使用的是Windows 7,所以如果解决方案是针对Windows的,那也没问题。我只是不想搞得太复杂,开很多不同的端口,同时使用UDP和TCP套接字,但如果这是唯一的方法,那也可以。
我看了一下ActiveState的netcopy示例:http://code.activestate.com/recipes/442521-windows-network-file-transfers/。这个方法很好用,但知道文件要发送到哪个位置以及获取发送权限一直很棘手,所以这看起来不是我想要的解决方案。
我对一些疯狂或独特的想法持开放态度。此外,我对网络编程还比较陌生,如果我用错了术语,我表示歉意。
2 个回答
2
我绝对不建议用UDP来传输文件。其实,使用TCP连接两端,然后自己在上面做一个文件传输协议,要简单得多,而不是在UDP上实现可靠的传输。
如果你真的需要在两端都有文件,就得管理一下文件名和权限。如果下载的地方只需要文件的内容,而不需要在文件系统里有一个实际的文件,那就可以不管这些了。
1
你可以使用 tftp 来实现这个功能。