コンテンツにスキップ

net

Since v8.0.75

netモジュールは、JSHアプリケーションで使用できるNode.js互換のTCPネットワークAPIを提供します。

createServer()

TCPサーバーを作成します。

対応するシグネチャ:

  • createServer([connectionListener])

  • createServer([options][, connectionListener])

  • 戻り値: Server

  • connectionListenerを指定すると、connectionイベントのリスナーとして登録されます。

構文
createServer([options][, connectionListener])
使用例
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
const net = require('net');

const server = net.createServer((socket) => {
	socket.on('data', (data) => {
		const msg = data.toString();
		socket.write('Echo: ' + msg);
	});
});

server.listen(0, '127.0.0.1');

createConnection() / connect()

TCPクライアントソケットを作成し、サーバーに接続します。

対応するシグネチャ:

  • createConnection(port[, host][, connectListener])

  • createConnection(options[, connectListener])

  • connect(...) (createConnectionの別名)

  • 戻り値: Socket

構文
createConnection(port[, host][, connectListener])
createConnection(options[, connectListener])
connect(port[, host][, connectListener])
connect(options[, connectListener])
使用例
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
const net = require('net');

const client = net.createConnection({ port: 5650, host: '127.0.0.1' }, () => {
	client.write('Hello Server\n');
});

client.on('data', (data) => {
	console.println(data.toString().trim());
	client.end();
});

IP検証ユーティリティ

IP文字列を検証するユーティリティ関数です。

  • isIP(input)は、460のいずれかを返します。
  • isIPv4(input)は、booleanを返します。
  • isIPv6(input)は、booleanを返します。
使用例
1
2
3
4
const net = require('net');
console.println(net.isIP('127.0.0.1')); // 4
console.println(net.isIPv4('127.0.0.1')); // true
console.println(net.isIPv6('::1')); // true

Server

createServer()が返すTCPサーバーオブジェクトです。

主なプロパティ
  • listening
  • connections

Server メソッド

  • listen(port[, host][, backlog][, callback])
  • listen(options[, callback])
  • close([callback])
  • address()
  • getConnections([callback])
  • ref()
  • unref()

Server イベント

  • connection (Socket)
  • listening ()
  • close ()
  • error (Error)
使用例
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
const net = require('net');
const server = net.createServer();

server.on('listening', () => {
	const addr = server.address();
	console.println(addr.family, addr.address, addr.port);
});

server.listen(0, '127.0.0.1', () => {
	console.println('server ready');
});

Socket

TCPクライアント/サーバー接続オブジェクトです。

主なプロパティ
  • connecting
  • readable
  • writable
  • destroyed
  • bytesRead
  • bytesWritten
  • localAddress
  • localPort
  • remoteAddress
  • remotePort
  • remoteFamily

Socket メソッド

  • connect(port[, host][, connectListener])
  • connect(options[, connectListener])
  • write(data[, encoding][, callback])
  • end([data[, encoding]][, callback])
  • destroy([error])
  • setTimeout(timeout[, callback])
  • setNoDelay([noDelay])
  • setKeepAlive([enable][, initialDelay])
  • setEncoding([encoding])
  • address()
  • pause()
  • resume()
  • ref()
  • unref()

Socket イベント

  • connect ()
  • data (Buffer)
  • end ()
  • close (hadError)
  • error (Error)
  • finish ()

動作に関する注意

  • dataイベントのペイロードは、Bufferで渡されます。
  • write()は、stringBufferArrayUint8Array互換の値に対応しています。
  • 現在のネイティブ実装では、pause()resume()は何も処理しません(no-op)。
使用例
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
const net = require('net');
const client = net.connect(5650, '127.0.0.1');

client.on('connect', () => {
	client.setNoDelay(true);
	client.write('ping\n');
});

client.on('data', (data) => {
	console.println('received:', data.toString().trim());
	client.end();
});

client.on('close', (hadError) => {
	console.println('closed, hadError=', hadError);
});
最終更新日