TCP
TCP
Node.js中的TCP
server.getConnections((err, count) => { console.log(count) })
1.TCP廣播可參考:
2.如果想在TCP封包上加密可參考:
3.限制最大連線數
Last updated
server.getConnections((err, count) => { console.log(count) })
Last updated
const net = require('net');
const server = net.createServer((c) => {
// 'connection' listener
console.log('client connected');
c.on('end', () => {
console.log('client disconnected');
});
c.on('error', (err) => {
console.log(err)
})
c.on('data', (data) => {
console.log(data)
})
c.write('hello\r\n');
//c.pipe(c); 用來echo任何client送出的message給client
});
server.on('error', (err) => {
throw err;
});
server.listen(8120, () => {
console.log('server bound');
});
// 監聽ctrl + c 並且disconnect 來避免TCP server產生ECONNRESET ERROR
process.on('SIGINT', function() {
console.log("Caught interrupt signal");
client.end();
});const net = require('net');
const client = net.createConnection({ port: 8120 }, () => {
//'connect' listener
console.log('connected to server!');
client.write('world123!\r\n');
});
client.on('data', (data) => {
console.log(data.toString());
//client.end();
});
client.on('end', () => {
console.log('disconnected from server');
process.exit();
});
// 監聽ctrl + c 並且disconnect 來避免TCP server產生ECONNRESET ERROR
process.on('SIGINT', function() {
console.log("Caught interrupt signal");
client.end();
});const net = require('net');
const server = net.createServer((c) => {
// 'connection' listener
console.log('client connected');
c.on('end', () => {
console.log('client disconnected');
});
c.write('hello\r\n');
c.pipe(c);
});
server.on('error', (err) => {
throw err;
});
server.listen(8121, () => {
console.log('server bound');
});
const client = net.createConnection({ port: 8120 }, () => {
//'connect' listener
console.log('connected to server!');
client.write('world123!\r\n');
});
client.on('data', (data) => {
console.log(data.toString());
//client.end();
});
client.on('end', () => {
console.log('disconnected from server');
process.exit();
});
// 監聽ctrl + c 並且disconnect 來避免TCP server產生ECONNRESET ERROR
process.on('SIGINT', function() {
console.log("Caught interrupt signal");
client.end();
});1. server.maxConnections
2.設定Linux中的tcp_max_syn_backlog 與 somaxconn
3.設定listen參數中的backlog