Node.jsのネットモジュール
Node.jsのネットモジュール
ネットモジュールは、クライアント/サーバアプローチの作成を含む基本的なネットワーク通信のためのガジェットの数を提供し、我々は次の方法でモジュールを導入することができるのNode.js:
var net = require("net")
ウェイ
いいえ。 | メソッドと説明 |
---|---|
1 | net.createServer([オプション] [、connectionListener ]) TCPサーバーを作成します。 自動的に「接続」イベントにConnectionListenerパラメータは、リスナーを作成しました。 |
2 | net.connect(オプション[、connectionListener]) これは、新しい「net.Socket 'を返し、指定されたアドレスとポートに接続します。 ソケットが確立されたとき、それは「接続」イベントがトリガされます。 |
3 | net.createConnection(オプション[、connectionListener]) ポートTCP接続へのホストおよびホスト・ポートを作成します。 'localhost'のデフォルトをホストします。 |
4 | net.connect(ポート[ホスト] [ 、connectListener]) ホストポートとホストのTCP接続のポートを作成します。 'localhost'のデフォルトをホストします。 パラメータconnectListenerは、「接続」イベントにリスナーとして追加されます。 戻る「net.Socket」。 |
5 | net.createConnection(ポート[ホスト] [ 、connectListener]) ホストポートとホストのTCP接続のポートを作成します。 'localhost'のデフォルトをホストします。 パラメータconnectListenerは、「接続」イベントにリスナーとして追加されます。 戻る「net.Socket」。 |
6 | net.connect(パス[、connectListener]) Unixソケットのパスへの接続を作成します。 リスナーとしてConnectListenerパラメータは、「接続」イベントに追加されます。 戻る「net.Socket」。 |
7 | net.createConnection(パス[、connectListener]) Unixソケットのパスへの接続を作成します。 パラメータconnectListenerは、「接続」イベントにリスナーとして追加されます。 戻る「net.Socket」。 |
8 | net.isIP(入力) 入力されたIPアドレスかどうかを検出します。 IPV4リターン4、IPV6リターン6は、そうでない場合は0を返します。 |
9 | net.isIPv4(入力) 入力したアドレスは、IPv4であれば、そうでない場合はfalseを返し、trueを返します。 |
10 | net.isIPv6(入力) アドレスがIPV6として入力されている場合は、それ以外の場合はfalseを返し、trueを返します。 |
net.Server
net.Serverは、多くの場合、TCPまたはローカルサーバーを作成するために使用されます。
いいえ。 | メソッドと説明 |
---|---|
1 | server.listen(ポート[ホスト] [ 、バックログ] [コールバック]) 指定されたポートおよびホストポートホスト交流接続で聞きます。 デフォルトでは、ホストは任意のIPv4アドレス(INADDR_ANY)直接接続を受け入れます。 ポートポートはランダムにポートを割り当てますが、0です。 |
2 | server.listen(パス[コールバック]) 接続のパスを指定し、ローカルソケット・サーバを起動します。 |
3 | server.listen(ハンドル[コールバック]) ハンドルを指定して接続します。 |
4 | server.listen(オプション[、コールバック]) オプション属性:ポートポート、ホスト、ホスト、およびバックログだけでなく、オプションのパラメータのコールバック関数を、一緒にserver.listen(ポート、[ホスト]、[バックログ]、[コールバック])、それらを呼び出します。 また、パスパラメータは、UNIXソケットを指定するために使用することができます。 |
5 | server.close([コールバック]) サーバーは、新しい接続を受け入れ、既存の接続を維持し停止します。 これは、すべての接続のエンドサーバーがシャットダウンし、「閉じる」イベントをトリガする非同期の関数です。 |
6 | server.address() オペレーティング・システムは、バインドされたアドレス、プロトコルファミリ名とサーバーのポートを返します。 |
7 | server.unref() これは、サーバーのシステムイベントがある場合のみ1アクティブなコールUNREFは、プログラムが終了することができます。 |
8 | server.ref() そして、UNREFこれが唯一のサーバーであれば、逆にサーバー上でUNREFされる前に、参考文献を呼び出すには、プログラムが終了します(デフォルトの動作)を許可しません。 サーバーがrefをされている場合は、refは再び呼び出され、影響を与えることはありません。 |
9 | server.getConnections(コールバック) 非同期サーバーの現在アクティブな接続の数を取得します。 ソケットは、有効後に子プロセスに送信されると、コールバック関数は2つの引数が誤るとカウントされています。 |
イベント
いいえ。 | イベント&説明 |
---|---|
1 | リスニング サーバーコールが結合トリガーをserver.listenとき。 |
2 | 接続 新しい接続が作成されたときにトリガされます。 ソケットはnet.Socketインスタンスです。 |
3 | 近いです これは、サーバーがシャットダウントリガします。 接続がある場合は、すべての接続がクローズされるまで、このイベントはトリガされませんので注意してください。 |
4 | エラー エラーが発生したときにトリガされます。 「閉じる」イベントは、イベントの直後に呼び出されます。 |
net.Socket
net.SocketオブジェクトはTCPまたはUNIXソケットの抽象化です。 二重ストリームインタフェースの実現のnet.Socket例。 これらは、使用(接続()を使用して)ユーザがクライアントで作成された、またはそれらは、ノードによって作成されたときに、接続サーバのイベントを介してユーザに送達することができます。
イベント
net.Socketイベント:
いいえ。 | イベント&説明 |
---|---|
1 | 検索 名前の後に、このイベントをトリガーするために接続する前に。 UNIXの場合はNAをsokcet。 |
2 | 接続します トリガーが正常ソケット接続を確立したとき。 |
3 | データ 火災データを受信します。 |
4 | 終了 ソケットともう一方の端は、イベントをトリガしたFINパケットを送信するとき。 |
5 | タイムアウト ソケットのアイドルタイムアウトがトリガされたときにのみ表示するソケットがアイドル状態になっています。 ユーザーが手動で接続を閉じる必要があります。 |
6 | ドレイン トリガーは、書き込みキャッシュは空だったとき。 アップロードを制御するために使用することができます。 |
7 | エラー エラーが発生したときにトリガされます。 |
8 | 近いです 火災ソケットが完全に閉じています。 Had_errorパラメータは、伝送エラーソケット近いためかどうかを示すブール値です。 |
プロパティ
net.Socketは、多くの有用な性質を提供し、ソケットの相互作用を制御することが容易:
いいえ。 | プロパティ&説明 |
---|---|
1 | socket.bufferSize このプロパティは、バッファに書き込まれるバイト数を示しています。 |
2 | socket.remoteAddress 例えばリモートIPアドレス文字列、:'74 .125.127.100 'または' 2001:4860:A005 :: 68 '。 |
3 | socket.remoteFamily このような「IPv4の 'または'のIPv6」としてリモートIPプロトコルスイートの文字列、。 |
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 バイト数は、送信されました。 |
ウェイ
いいえ。 | メソッドと説明 |
---|---|
1 | 新しいnet.Socket([オプション]) 私たちは、新しいソケットオブジェクトを構築します。 |
2 | socket.connect(ポート[ホスト] [ 、connectListener]) 指定されたポートおよびホストポートのホスト、ソケット接続を作成します。 ローカルホストへのパラメータのデフォルト値をホストします。 net.createConnection開いたソケットを使用するために通常必要はありません。 あなただけがときに、そのソケットを達成するために使用されます。 |
3 | socket.connect(パス[、connectListener]) Unixソケット指定されたパスを開きます。 net.createConnection開いたソケットを使用するために通常必要はありません。 あなただけがときに、そのソケットを達成するために使用されます。 |
4 | socket.setEncoding([エンコード]) 設定コーディング |
5 | socket.write(データ[エンコード] [コールバック]) ソケット上のデータを送信します。 2番目のパラメータは文字列のエンコーディングを指定し、デフォルトはUTF8エンコーディングです。 |
6 | socket.end([データ] [エンコード ]) セミクローズソケット。 例えば、FINパケットを送信します。 サーバは、データを送信することが可能です。 |
7 | socket.destroy() ソケット上にI / Oアクティビティていることを確認してください。 必要に応じてのみの場合にエラーが発生します。 (処理エラーなど)。 |
8 | socket.pause() リードデータを一時停止します。 つまり、データがイベントをトリガしません。 アップロードコントロールのために非常に有用です。 |
9 | socket.resume() 復元したいデータを読み込んだ後にポーズ()を呼び出します。 |
10 | socket.setTimeout(タイムアウト[コールバック]) タイムアウト(ミリ秒)以上のアイドルソケットは、ソケットがタイムアウトに設定されています。 |
11 | socket.setNoDelay([NODELAY]) ナグ(ネーグル)アルゴリズムを無効にしてください。 デフォルトのTCP接続を使用ナグアルゴリズムによって、彼らは送信する前にデータをバッファリングします。 すぐにデータを送信するNODELAYは、コールsocket.write()時間でtrueに設定しました。 NODELAYデフォルト値はtrueです。 |
12 | socket.setKeepAlive([有効] [、initialDelayの ]) /無効に長いリンク機能を有効にし、プローブソケット上の長いアイドル状態の接続に最初に送信する前に、必要に応じて初期遅延を設定します。 デフォルトはfalseです。 initialDelayの(ミリ秒)を設定すると、最後のパケットが受信遅延とプローブとの間の長い接続を設定します。 initialDelayのが0に設定され、それがデフォルト(または前の)値のままにします。 デフォルト値は0です。 |
13 | socket.address() オペレーティング・システムは、バインドされたアドレス、プロトコルファミリ名とサーバーのポートを返します。 {:12346、家族:「IPv4の '、アドレス:' 127.0.0.1 'ポート}返されたオブジェクトは、次のような3つの属性を持っています。 |
14 | socket.unref() これは、サーバーのシステムイベントがある場合のみ1アクティブなコールUNREFは、プログラムが終了することができます。 サーバはUNREFされている場合、UNREFは再び呼び出され、影響を与えることはありません。 |
15 | socket.ref() そして、UNREFこれが唯一のサーバーであれば、逆にサーバー上でUNREFされる前に、参考文献を呼び出すには、プログラムが終了します(デフォルトの動作)を許可しません。 サーバーがrefをされている場合は、refは再び呼び出され、影響を与えることはありません。 |
例
server.jsファイルを作成し、以下のように、コードは次のとおりです。
var net = require('net'); var server = net.createServer(function(connection) { console.log('client connected'); connection.on('end', function() { console.log('客户端关闭连接'); }); connection.write('Hello World!\r\n'); connection.pipe(connection); }); server.listen(8080, function() { console.log('server is listening'); });
上記のサーバー側のコードの実装:
$ node server.js server is listening # 服务已创建并监听 8080 端口
client.jsファイルを作成し、新しいウィンドウを開き、次のように、コードは次のとおりです。
var net = require('net'); var client = net.connect({port: 8080}, function() { console.log('连接到服务器!'); }); client.on('data', function(data) { console.log(data.toString()); client.end(); }); client.on('end', function() { console.log('断开与服务器的连接'); });
上記のクライアントコードの実装:
连接到服务器! Hello World! 断开与服务器的连接
GIFの例が実証します
