通常的ftp服务器需要两个线程进行数据连接和控制连接吗?

时间:2013-01-24 09:58:48

标签: ftp

我正在尝试编写标准的FTP服务器。 我想知道这种情况是否正确?

1. On each request of clients, a thread manager makes thread for control connection.

2. When control connection thread receives PORT command, it establishes data connection(active open)

这是通常的解决方案吗?我不知道这是因为我必须创建标准的FTP服务器。

如果您回答“是”或“否”,我会很高兴。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

是的,FTP使用两个连接,阅读RFC http://www.ietf.org/rfc/rfc959.txt,维基百科文章有点友好http://en.wikipedia.org/wiki/File_Transfer_Protocol但RFC是圣经。

就线程而言,你需要一个线程来监听传入的连接,一个线程来处理控制连接,一个线程来处理数据连接。您可以使用select。

使用异步i / o,通过一个线程完成所有操作