更新日: 2017-12-20 (水) 11:24:27 (33d)

:Javascript

Node.jsで簡単なTCPサーバーを作ってみました。
net.createServer()でサーバーインスタンスを生成し、コネクション確立/切断・データ受信・エラー等のイベントハンドラーを記述することになります。

  • TCPサーバー
var net = require('net');
var HOST = '127.0.0.1';
var PORT = 3000;
// サーバーインスタンスを生成し、リッスンします
// net.createServer()に渡す関数は、'connection'イベントハンドラーになります。
// コールバック関数が受け取るsockeオブジェクトは各接続ごとにユニークなものとなります。
net.createServer(function(sock) {
    // TCPサーバーが接続しました。socketオブジェクトが自動的に割り当てられます。
    console.log('CONNECTED: ' + sock.remoteAddress +':'+ sock.remotePort);
    // 'data' イベントハンドラー
    sock.on('data', function(data) {
        console.log('DATA: ' + data );
        // ソケットに応答を書き込みます。クライアントはその書き込みを受信します。
        sock.write('RECIEVED');
    });
    // 'close'イベントハンドラー
    sock.on('close', function(had_error) {
        console.log('CLOSED. Had Error: ' + had_error);
    });
    // 'errer'イベントハンドラー
    sock.on('error', function(err) {
        console.log('ERROR: ' + err.stack);
    });
}).listen(PORT, HOST);
console.log('Server listening on ' + HOST +':'+ PORT);
  • TCPクライアント
var net = require('net');
var HOST = '127.0.0.1';
var PORT = 3000;
var client = new net.Socket();
client.connect(PORT, HOST, function() {
    console.log('CONNECTED TO: ' + HOST + ':' + PORT);
    // クライアントが接続次第、ソケットにメッセージを書き込みます。サーバーはこのデータを受信します。 
    client.write('HELLO WORLD!');
});
// クライアント側ソケットの'data'イベントハンドラーを定義します。
// dataはサーバーがこのソケットに送信した内容になります。
client.on('data', function(data) {
    console.log('DATA: ' + data);
    // Close the client socket completely
    client.destroy();
});
// クライアント側'close' イベントハンドラーを定義します
client.on('close', function() {
    console.log('Connection closed');
});

選択肢 投票
役に立った 1  
役に立たなかった 0  
どちらでもない 0  
このページが参照された数
Total: 7534, 今日: 2, 昨日: 0

でじうぃきは神奈川県横浜市の位置情報システム・スマホアプリ開発の株式会社オンラインコンサルタントが運営しています。
投稿
トップ   このページを編集する 再編集不可にする 差分 バックアップ 添付 複製 名前変更 リロード   新しいページを作る 一覧 検索する 最新の更新   ヘルプ   最終更新のRSS
Last-modified: 2017-12-20 (水) 11:24:27 (33d)