首页 » Web前端 » phpsocketftp技巧_20200726若何用 socket 编程实现 ftp 协议

phpsocketftp技巧_20200726若何用 socket 编程实现 ftp 协议

访客 2024-12-11 0

扫一扫用手机浏览

文章目录 [+]

功能用户输入user username、pass password注册,注册后输入dir查看做事器文件列表,输入get filename path下载文件到指定路径。

思路①客户端建立连接,打开输入输出流,开循环支持多次数据交流,直到用户输入退出命令,再关闭流和连接。
循环内读取用户输入,作初步检测,看是否为上面几个命令之一,否则提示“输入缺点”,哀求用户再次输入。
若是上面几大命令之一,则将命令写到输出流,发送给做事器。
②做事器监听21端口,开无限循环支持多线程,每个循环内获取当前到达的连接,并传入一个新线程内处理该连接(实在把获取连接的事情交给线程也行)。
线程内先获取输入流与输出流,然后开循环支持多次数据交流,直到客户端发来的命令为退出命令,才退出循环,关闭流和连接。
循环内读取用户发来的命令,分类,分别实行相应方法,天生相应码,反馈给客户端。
③客户端吸收做事真个反馈,根据相应码打印相应信息。
④进入下一次循环,接着读取用户命令。

phpsocketftp技巧_20200726若何用 socket 编程实现 ftp 协议

紧张用到的 FTP 命令FTP 每个命令都有 3 到 4 个字母组成,命令后面跟参数,用空格分开。
每个命令都以 "\r\n"结束。
要下载或上传一个文件,首先要登入 FTP 做事器,然后发送命令,最退却撤退出。
这个过程中,紧张用到的命令有 USER、PASS、SIZE、REST、CWD、RETR、PASV、PORT、QUIT。
USER: 指定用户名。
常日是掌握连接后第一个发出的命令。
“USER gaoleyi\r\n”: 用户名为gaoleyi 登录。
PASS: 指定用户密码。
该命令紧跟 USER 命令后。
“PASS gaoleyi\r\n”:密码为 gaoleyi。
SIZE: 从做事器上返回指定文件的大小。
“SIZE file.txt\r\n”:如果 file.txt 文件存在,则返回该文件的大小。
CWD: 改变事情目录。
如:“CWD dirname\r\n”。
PASV: 让做事器在数据端口监听,进入被动模式。
如:“PASV\r\n”。
PORT: 见告 FTP 做事器客户端监听的端口号,让 FTP 做事器采取主动模式连接客户端。
如:“PORT h1,h2,h3,h4,p1,p2”。
RETR: 下载文件。
“RETR file.txt \r\n”:下载文件 file.txt。
STOR: 上传文件。
“STOR file.txt\r\n”:上传文件 file.txt。
REST: 该命令并不传送文件,而是略过指定点后的数据。
此命令后该当跟其它哀求文件传输的 FTP 命令。
“REST 100\r\n”:重新指定文件传送的偏移量为 100 字节。
QUIT: 关闭与做事器的连接。

phpsocketftp技巧_20200726若何用 socket 编程实现 ftp 协议
(图片来自网络侵删)
标签:

相关文章