"FTP" 客户端 - 用于下载文件的新套接字连接?
"FTP" client - new socket connection for downloading files?
我目前正在使用 JavaFX 创建自己的 "ftp" 客户端和服务器。
我会尽量描述我的问题:
- FTP 客户端连接并应用用户名和密码
如果凭据有效,服务器会为客户端创建一个新线程,让客户端浏览文件夹和文件。 (这里一切正常)
现在我想知道的是,如果客户端决定下载一个文件,客户端是否需要重新连接到服务器?因为我认为每次下载都需要由一个单独的套接字和一个单独的线程处理,对吗?我能想到的唯一方法是建立新连接并在后台再次应用凭据,然后发送要下载的文件路径..
这是一个好的解决方案吗?
服务器仅使用一个服务器套接字。我没有使用任何 apache 库或类似的东西。
如果能得到所有答案和想法,我将不胜感激。
谢谢
Because I'm thinking that every download needs to be handled by a separate socket and a separate thread, is that correct?
FTP 每次数据传输都需要一个新连接,即目录列表和文件上传和下载。这个新连接意味着一个不同的套接字,但并不意味着在所有情况下都是一个新线程(有多种方法可以在同一个线程中使用多个套接字,详细信息超出了这个问题的范围)。
...apply the credentials again...
凭据不再应用。相反,客户端或服务器为数据连接创建一个动态端点并将详细信息发送给对等方。只有数据本身在这个连接中交换,也就是说,每个设法连接到具有预期源地址(可能是源端口)的套接字的人都将被认为是可信的。
有关协议的详细信息我建议研究标准,即RFC 959。
我目前正在使用 JavaFX 创建自己的 "ftp" 客户端和服务器。
我会尽量描述我的问题:
- FTP 客户端连接并应用用户名和密码
如果凭据有效,服务器会为客户端创建一个新线程,让客户端浏览文件夹和文件。 (这里一切正常)
现在我想知道的是,如果客户端决定下载一个文件,客户端是否需要重新连接到服务器?因为我认为每次下载都需要由一个单独的套接字和一个单独的线程处理,对吗?我能想到的唯一方法是建立新连接并在后台再次应用凭据,然后发送要下载的文件路径..
这是一个好的解决方案吗?
服务器仅使用一个服务器套接字。我没有使用任何 apache 库或类似的东西。
如果能得到所有答案和想法,我将不胜感激。
谢谢
Because I'm thinking that every download needs to be handled by a separate socket and a separate thread, is that correct?
FTP 每次数据传输都需要一个新连接,即目录列表和文件上传和下载。这个新连接意味着一个不同的套接字,但并不意味着在所有情况下都是一个新线程(有多种方法可以在同一个线程中使用多个套接字,详细信息超出了这个问题的范围)。
...apply the credentials again...
凭据不再应用。相反,客户端或服务器为数据连接创建一个动态端点并将详细信息发送给对等方。只有数据本身在这个连接中交换,也就是说,每个设法连接到具有预期源地址(可能是源端口)的套接字的人都将被认为是可信的。
有关协议的详细信息我建议研究标准,即RFC 959。