Node.jsでTCP通信する
以下のサイトを参考にしてNode.jsでTCP通信を行ってみました。
nodeによるTCP通信は net
モジュールを使用します。APIリファレンスは以下を参照ください。
Net | Node.js v12.4.0 Documentation
1. 準備
以下のコマンドを入力します。
$ npm install net
2. コード
server用とclient用のコードを以下のようにそれぞれ準備します。
server.js
const net = require('net'); const server = net.createServer(socket => { socket.on('data', data => { console.log(data + ' from ' + socket.remoteAddress + ':' + socket.remotePort); socket.write('server -> Repeating: ' + data); }); socket.on('close', () => { console.log('client closed connection'); }); }).listen(3000); console.log('listening on port 3000');
client.js
const net = require('net'); const client = net.connect('3000', 'localhost', () => { console.log('connected to server'); client.write('Hello World!'); }); client.on('data', data => { console.log('client-> ' + data); client.destroy(); }); client.on('close', () => { console.log('client-> connection is closed'); });
3. 実行
serverとclient別々のターミナルを立ち上げ、以下のコマンドを実行してメッセージが表示されれば成功です。
$ node server.js
$ node ceient.js
参考にしたサイトではクライアントからの標準入力をサーバでエコーバックし続けていますが、今回のこのコードはclientから「Hello World!」を送って返ってきたら destroy
して接続を終了しています。