Nodejs-net-module
Node.js-ネットモジュール
Node.js net モジュールは、サーバーとクライアントの両方を作成するために使用されます。 このモジュールは非同期ネットワークラッパーを提供し、次の構文を使用してインポートできます。
var net = require("net")
方法
Sr.No. | Method & Description |
---|---|
1 |
net.createServer([options][, connectionListener]) 新しいTCPサーバーを作成します。 connectionListener引数は、「connection」イベントのリスナーとして自動的に設定されます。 |
2 |
net.connect(options[, connectionListener]) 新しい 'net.Socket’を返し、指定されたアドレスとポートに接続するファクトリメソッド。 |
3 |
net.createConnection(options[, connectionListener]) 新しい 'net.Socket’を返し、指定されたアドレスとポートに接続するファクトリメソッド。 |
4 |
net.connect(port[, host][, connectListener]) ホスト上のポートへのTCP接続を作成します。 ホストを省略すると、「localhost」が想定されます。 connectListenerパラメーターは、「connect」イベントのリスナーとして追加されます。 新しい 'net.Socket’を返すファクトリメソッドです。 |
5 |
net.createConnection(port[, host][, connectListener]) ホスト上のポートへのTCP接続を作成します。 ホストを省略すると、「localhost」が想定されます。 connectListenerパラメーターは、「connect」イベントのリスナーとして追加されます。 新しい 'net.Socket’を返すファクトリメソッドです。 |
6 |
net.connect(path[, connectListener]) パスへのUnixソケット接続を作成します。 connectListenerパラメーターは、「connect」イベントのリスナーとして追加されます。 新しい 'net.Socket’を返すファクトリメソッドです。 |
7 |
net.createConnection(path[, connectListener]) パスへのUnixソケット接続を作成します。 connectListenerパラメーターは、「connect」イベントのリスナーとして追加されます。 新しい 'net.Socket’を返すファクトリメソッドです。 |
8 |
net.isIP(input) 入力がIPアドレスかどうかをテストします。 無効な文字列の場合は0、IPバージョン4アドレスの場合は4、IPバージョン6アドレスの場合は6を返します。 |
9 |
net.isIPv4(input) 入力がバージョン4のIPアドレスである場合はtrueを返し、そうでない場合はfalseを返します。 |
10 |
net.isIPv6(input) 入力がバージョン6のIPアドレスである場合はtrueを返し、そうでない場合はfalseを返します。 |
クラス-net.Server
このクラスは、TCPまたはローカルサーバーを作成するために使用されます。
方法
Sr.No. | Method & Description |
---|---|
1 |
server.listen(port[, host][, backlog][, callback]) 指定されたポートとホストで接続の受け入れを開始します。 ホストを省略すると、サーバーは任意のIPv4アドレス(INADDR_ANY)への接続を受け入れます。 ポート値がゼロの場合、ランダムなポートが割り当てられます。 |
2 |
server.listen(path[, callback]) 指定されたパスで接続をリッスンするローカルソケットサーバーを起動します。 |
3 |
server.listen(handle[, callback]) ハンドルオブジェクトは、サーバーまたはソケット(基になる_handleメンバーを持つもの)、または\ {fd:<n>}オブジェクトに設定できます。 これにより、サーバーは指定されたハンドルで接続を受け入れますが、ファイル記述子またはハンドルがポートまたはドメインソケットに既にバインドされていると想定されます。 Windowsでは、ファイル記述子のリッスンはサポートされていません。 |
4 |
server.listen(options[, callback]) オプションのポート、ホスト、およびバックログプロパティ、およびオプションのコールバック関数は、server.listen(port、[host]、[backlog]、[callback])への呼び出しの場合と同様に動作します。 または、pathオプションを使用してUNIXソケットを指定できます。 |
5 |
server.close([callback]) すべての接続が終了し、サーバーが「close」イベントを発行すると、最終的に閉じられます。 |
6 |
server.address() オペレーティングシステムによって報告されたサーバーのバインドアドレス、アドレスファミリ名、およびポートを返します。 |
7 |
server.unref() サーバーでunrefを呼び出すと、これがイベントシステムで唯一のアクティブなサーバーである場合、プログラムを終了できます。 サーバーがすでにunrefdである場合、unrefを再度呼び出しても効果はありません。 |
8 |
server.ref() unrefとは反対に、以前にunrefdされたサーバーでrefを呼び出しても、プログラムが唯一のサーバーである場合、プログラムは終了しません(デフォルトの動作)。 サーバーがrefdである場合、refを再度呼び出しても効果はありません。 |
9 |
server.getConnections(callback) サーバー上の同時接続数を非同期的に取得します。 ソケットがフォークに送信されたときに機能します。 コールバックは、errとcountの2つの引数を取る必要があります。 |
イベント
Sr.No. | Events & Description |
---|---|
1 |
listening server.listenを呼び出した後にサーバーがバインドされたときに生成されます。 |
2 |
connection 新しい接続が作成されたときに生成されます。 ソケットオブジェクト、接続オブジェクトはイベントハンドラーで使用できます。 ソケットはnet.Socketのインスタンスです。 |
3 |
close サーバーが閉じたときに生成されます。 接続が存在する場合、このイベントはすべての接続が終了するまで発行されないことに注意してください。 |
4 |
error エラーが発生したときに生成されます。 「close」イベントは、このイベントの直後に呼び出されます。 |
クラス-net.Socket
このオブジェクトは、TCPまたはローカルソケットの抽象化です。 net.Socketインスタンスは、デュプレックスストリームインターフェイスを実装します。 ユーザーが作成し、クライアントとして使用する(connect()を使用)か、Nodeで作成し、サーバーの「接続」イベントを介してユーザーに渡すことができます。
イベント
net.SocketはeventEmitterであり、次のイベントを発行します。
Sr.No. | Events & Description |
---|---|
1 |
lookup ホスト名を解決した後、接続する前に生成されます。 UNIXソケットには適用されません。 |
2 |
connect ソケット接続が正常に確立されたときに生成されます。 |
3 |
data データを受信したときに生成されます。 引数データはバッファまたは文字列になります。 データのエンコードは、socket.setEncoding()によって設定されます。 |
4 |
end ソケットのもう一方の端がFINパケットを送信すると生成されます。 |
5 |
timeout ソケットが非アクティブからタイムアウトした場合に生成されます。 これは、ソケットがアイドル状態になったことを通知するためだけです。 ユーザーは手動で接続を閉じる必要があります。 |
6 |
drain 書き込みバッファが空になると生成されます。 アップロードの調整に使用できます。 |
7 |
error エラーが発生したときに生成されます。 「close」イベントは、このイベントの直後に呼び出されます。 |
8 |
close ソケットが完全に閉じられると発生します。 引数had_errorは、伝送エラーのためにソケットが閉じられたかどうかを示すブール値です。 |
プロパティ
net.Socketは、ソケットの相互作用をより適切に制御するための多くの便利なプロパティを提供します。
Sr.No. | Property & Description |
---|---|
1 |
socket.bufferSize このプロパティは、書き込み用に現在バッファリングされている文字数を示します。 |
2 |
socket.remoteAddress
|
3 |
socket.remoteFamily リモートIPファミリの文字列表現。 「IPv4」または「IPv6」。 |
4 |
socket.remotePort リモートポートの数値表現。 たとえば、80または21。 |
5 |
socket.localAddress リモートクライアントが接続しているローカルIPアドレスの文字列表現。 たとえば、「0.0.0.0」でリッスンしていて、クライアントが「192.168.1.1」で接続している場合、値は「192.168.1.1」になります。 |
6 |
socket.localPort ローカルポートの数値表現。 たとえば、80または21。 |
7 |
socket.bytesRead 受信したバイトの量。 |
8 |
socket.bytesWritten 送信されたバイト数。 |
方法
Sr.No. | Method & Description |
---|---|
1 |
new net.Socket([options]) 新しいソケットオブジェクトを作成します。 |
2 |
socket.connect(port[, host][, connectListener]) 指定されたソケットの接続を開きます。 ポートとホストが指定された場合、ソケットはTCPソケットとして開かれ、ホストが省略された場合、localhostが想定されます。 パスが指定されている場合、ソケットはそのパスへのUnixソケットとして開かれます。 |
3 |
socket.connect(path[, connectListener]) 指定されたソケットの接続を開きます。 ポートとホストが指定された場合、ソケットはTCPソケットとして開かれ、ホストが省略された場合、localhostが想定されます。 パスが指定されている場合、ソケットはそのパスへのUnixソケットとして開かれます。 |
4 |
socket.setEncoding([encoding]) ソケットのエンコーディングを読み取り可能なストリームとして設定します。 |
5 |
socket.write(data[, encoding][, callback]) ソケットでデータを送信します。 2番目のパラメーターは、文字列の場合のエンコードを指定します。デフォルトはUTF8エンコードです。 |
6 |
socket.end([data][, encoding]) ソケットを半分閉じます。つまり、FINパケットを送信します。 サーバーはまだデータを送信する可能性があります。 |
7 |
socket.destroy() このソケットでI/Oアクティビティが発生しないようにします。 エラー(パースエラーなど)の場合にのみ必要です。 |
8 |
socket.pause() データの読み取りを一時停止します。 つまり、「データ」イベントは発行されません。 アップロードの抑制に役立ちます。 |
9 |
socket.resume() pause()を呼び出した後、読み取りを再開します。 |
10 |
socket.setTimeout(timeout[, callback]) ソケットでの非アクティブ状態がtimeoutミリ秒後にタイムアウトするようにソケットを設定します。 デフォルトでは、net.Socketにはタイムアウトがありません。 |
11 |
socket.setNoDelay([noDelay]) Nagleアルゴリズムを無効にします。 デフォルトでは、TCP接続はNagleアルゴリズムを使用し、送信する前にデータをバッファリングします。 noDelayにtrueを設定すると、socket.write()が呼び出されるたびにすぐにデータが起動されます。 noDelayのデフォルトはtrueです。 |
12 |
socket.setKeepAlive([enable][, initialDelay]) キープアライブ機能を有効/無効にし、オプションで、最初のキープアライブプローブがアイドルソケットで送信されるまでの初期遅延を設定します。 デフォルトのfalseを有効にします。 |
13 |
socket.address() オペレーティングシステムによって報告された、バインドされたアドレス、アドレスファミリ名、およびソケットのポートを返します。 3つのプロパティを持つオブジェクトを返します。 \ {ポート:12346、ファミリ: 'IPv4'、アドレス: '127.0.0.1'}。 |
14 |
socket.unref() ソケットでunrefを呼び出すと、これがイベントシステムで唯一のアクティブなソケットである場合、プログラムを終了できます。 ソケットがすでにrefrefされていない場合、unrefを再度呼び出しても効果はありません。 |
15 |
socket.ref() unrefとは反対に、以前にunrefdされたソケットでrefを呼び出しても、それが唯一のソケットである場合、プログラムは終了しません(デフォルトの動作)。 ソケットがrefdである場合、再度refを呼び出しても効果はありません。 |
例
次のコードでserver.jsという名前のjsファイルを作成します-
ファイル:server.js
var net = require('net');
var server = net.createServer(function(connection) {
console.log('client connected');
connection.on('end', function() {
console.log('client disconnected');
});
connection.write('Hello World!\r\n');
connection.pipe(connection);
});
server.listen(8080, function() {
console.log('server is listening');
});
今server.jsを実行して結果を確認します-
$ node server.js
出力を確認します。
server is listening
次のコードでclient.jsという名前のjsファイルを作成します-
- ファイル:client.js *
var net = require('net');
var client = net.connect({port: 8080}, function() {
console.log('connected to server!');
});
client.on('data', function(data) {
console.log(data.toString());
client.end();
});
client.on('end', function() {
console.log('disconnected from server');
});
次に、別の端末からclient.jsを実行して結果を確認します-
$ node client.js
出力を確認します。
connected to server!
Hello World!
disconnected from server
server.jsが実行されている端末で出力を確認します。
server is listening
client connected
client disconnected