サーバーサイドコード
var net = require('net');
var server = net.createServer((connection) => {
console.log('server connected');
connection.on('data', (data) => {
console.log('data received');
console.log('data is: \n' + data);
});
});
var HOST = '127.0.0.1';
var PORT = '8000'
server.listen(PORT, HOST, function() {
//listening
console.log('server is listening to ' + PORT + '\n');
server.on('connection', function(){
console.log('connection made...\n')
})
});
クライアントサイドコード
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(__dirname + '/readMe.txt');
// console.log(__dirname + '/readMe.txt');
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);
});
クライアントとTCPサーバーを作成し、1つのクライアントからサーバーに複数のデータを送信する方法を知りたいです。
サーバーに要求して応答を返すサーバーに接続できるクライアントが複数存在する可能性があることは知っていますが、それは望ましくありません。単一のクライアントがノード内のサーバーに複数のデータストリームを送信できる可能性があることを知りたいのです。 js。
200行のチャンクデータが存在するファイルcreateReadStream
があると仮定すると、を使用してそのファイルを読み取ることができますが、200行のデータ(例)を持つ複数のファイルがあると仮定して、これらの複数のファイルをTCP経由で送信する方法サーバ
どんな例でも理解されるでしょう。
node.jsは初めてなので、例を使って説明してください
上記の例は、1つのファイルのデータをサーバーに送信することです。クライアントが数百のファイル(または任意のデータストリーム)を送信したい場合はどうすればよいでしょうか。では、単一のメディアを介してTCPサーバーに送信するにはどうすればよいでしょうか。
これは、net
モジュール、fs
モジュール、およびforEach
ファイルをループするための基本的な構成を使用して可能です。
server.js
const net = require('net');
const host = "localhost";
const port = 3000;
const server = net.createServer((connection) => {
console.log('server connected');
connection.on('data', (data) => {
console.log(`data received: ${data}`);
});
});
server.listen(port, host, function () {
console.log(`server is listening on ' + ${port}`);
server.on('connection', function () {
console.log('connection made...\n')
})
});
client.js
const net = require("net");
const fs = require("fs");
const port = 3000;
const host = "localhost";
const files = [
"file1.txt",
"file1.txt",
"file1.txt"
// As many files as you want
]
const client = new net.Socket()
client.connect(port, host, function () {
files.forEach(file => {
const fileStream = fs.createReadStream(file);
fileStream.on('error', function (err) {
console.log(err);
})
fileStream.on('open', function () {
fileStream.pipe(client);
});
});
});
client.on('close', function () {
console.log('server closed connection')
});
client.on('error', function (err) {
console.log(err);
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加