【发布时间】:2014-11-10 16:44:56
【问题描述】:
我意识到我需要更改我正在编写的文件同步程序的设计。
目前,我的程序如下:
1) 客户端连接到服务器(并经过验证)
2) 如果客户端通过验证,则创建一个线程并使用客户端连接的套接字开始循环
3) 如果客户端或服务器上的文件发生更改,则通过该套接字发送更改(使用 select 进行异步通信)
我的代码很糟糕,因为我在使用一个套接字进行文件传输或使用一个套接字进行每个文件传输之间纠结。任何一种情况(在我看来)都可以,但是对于第一种情况,我必须创建某种协议来确定哪些字节去哪里(某种标题),而对于第二种情况,我必须创建新的套接字在一个新线程上(不需要再次验证),这样文件就可以在每个线程上发送,而不必担心异步传输。
我更愿意做第二个选项,所以我正在研究使用 SocketServer。 SocketServer.ThreadingTCPServer 和 SocketServer.ThreadingMixIn 能解决这类问题吗?我很难考虑它,因为我会假设 SocketServer.ThreadingMixIn 适用于新连接的客户端,除非我以某种方式有一个“外部”套接字服务器来服务“内部”套接字服务器?
【问题讨论】:
标签: python sockets socketserver