我将翻译如下:
当我运行它们时,没有出现任何错误,但服务器仅创建服务器,接受连接然后关闭连接。除此之外,我似乎无法解决问题。此外,是否将其用于传输大文件(约1GB)是一个不错的选择,还是Node不适合这样的操作?
谢谢!
我正在努力学习Node.js,其中一个我一直想要实现的是让Node作为监听服务器模拟一个简单的文件传输代理。这需要Node监听TCP socket请求,然后接受二进制数据流并将其存储在系统中。
目前为止,我已经有了以下代码,其中服务器仍然不存储任何内容,只输出它收到的数据,或者应该输出:
服务器端:
var net = require('net');
var fs = require('fs');
var buffer = require('buffer');
var server = net.createServer(function() {
console.log('server connected');
});
var HOST = '127.0.0.1';
var PORT = '9001'
var FILEPATH = '/home/steve/Downloads/';
server.listen(PORT, HOST, function() {
//listening
console.log('server bound to ' + PORT + '\n');
server.on('connection', function(){
console.log('connection made...\n')
})
server.on('data', function(data) {
console.log('data received');
console.log('data is: \n' + data);
});
});
为了保持简单,我也写了一个Node的客户端。
客户端:
var net = require('net');
var fs = require('fs');
var PORT = 9001;
var HOST = '127.0.0.1';
var FILEPATH = '/home/steve/Work/Node.js/FileTransfer/random.fil';
var client = new net.Socket()
//connect to the server
client.connect(PORT,HOST,function() {
'Client Connected to server'
//send a file to the server
var fileStream = fs.createReadStream(FILEPATH);
fileStream.on('error', function(err){
console.log(err);
})
fileStream.on('open',function() {
fileStream.pipe(client);
});
});
//handle closed
client.on('close', function() {
console.log('server closed connection')
});
client.on('error', function(err) {
console.log(err);
});
当我运行它们时,没有出现任何错误,但服务器仅创建服务器,接受连接然后关闭连接。除此之外,我似乎无法解决问题。此外,是否将其用于传输大文件(约1GB)是一个不错的选择,还是Node不适合这样的操作?
谢谢!