「node网络编程」FTP客户端程序
前言
最近,在「计算机网络」的课堂上,老师讲到了应用层相关的协议,FTP/HTTP/SMTP...
理论结合实践才能产生最大的效益,所以我便利用nodejs
中的net
包,进行了相关的网络编程。
知识介绍
代码
var net = require('net');
var socket = net.createConnection(21,'172.21.59.162');//new net.Stream();
socket.on('connection',function () {
console.log('connected');
});
socket.on('end',function () {
console.log('disconnected');
});
process.stdin.pipe(socket).pipe(process.stdout);
socket.write('USER anonymous\r\n');
socket.write('PASS guest\r\n');
socket.write('PWD\r\n');
socket.write('PORT 172,21,59,162,34,184\r\n');//172,21,59,162:客户端IP 34,184:10进制表示端口,即34*256+184=8888
// socket.write('LIST movie\r\n');
//socket.write('TYPE I\r\n');
socket.write('RETR bootstrap.zip\r\n');//下载服务器端文件
// socket.write('LIST /FTP\r\n');
const client = net.createServer(function (s) {
console.log('client new connect');
s.on('connect',()=>{
console.info('client new connect');
});
s.pipe(require('fs').createWriteStream('ftpfile.zip'));//保存服务器服务器数据
s.on('error',console.error)
}).listen(8888);//新的客户端端口
总结
学习了node的相关网络编程,理解FTP协议,自己造轮子。