我在FTP協議(RFC959)中看到這樣的幾句:
The server shall initiate the data connection from his own default
data port (L-1) using the specified user data port(U).
這裡是指服務器應該從L-1(20)端口連結到客戶端的數據端口(U)嗎?但是服務器應該會為很多客戶端服務,而從一個端口應該只能做一個連接.
所以請問這句話如何正確解釋.
The server shall initiate the data connection from his own default
data port (L-1) using the specified user data port(U).
這裡是指服務器應該從L-1(20)端口連結到客戶端的數據端口(U)嗎?但是服務器應該會為很多客戶端服務,而從一個端口應該只能做一個連接.
所以請問這句話如何正確解釋.
协议中使用的命令应该是PASV(记不清了,你最好再查查文档验证一下)
我在上面摘錄的英文是在RFC959-5.2CONNECTIONS一章的一開始就提到的,所以應該是最基本的連接方式。
但是在进行数据传递,例如传递一个文件、列目录等操作,一般需要建立一个数据传递的连接,具体情形如下:
1、客户端发送PORT 指令,制定本地的IP地址和临时端口号;然后listen
2、服务器通过端口20和客户端通过PORT制定的地址和端口连接;
3、通过这个新连接传递数据;
4、数据传递结束后,服务器通过21端口向客户端传递控制信息:文件已经传递完成,然后断开这个连接。
1、客户端首先与服务器的21号端口进行连接,并得到一个临时的端口号
2、一旦连接成功后,客户端通过这个临时的端口号发送PORT命令,告诉服务器与它的数据端口号(重新生成的空闲端口号)进行连接
3、客户端从自己的数据端口上读出服务器发送的数据
4、服务器在发送完数据后将关闭数据连接,但控制连接还在
5、客户端在退出前,如果再次使用类似dir命令时,将重复2
下载: http://www.crob.net/studio/ftpserver_cn/
[email protected]
http://www.crob.net