2012-02-08 18 views
18

でTCPソケットから切断するには?は、どのように私は、このコマンドを使用してNodeJsでサーバーをソケットに接続NodeJs

私はclient.end()とさえclient.destroy()

を試してみましたが、私はnetstatコマンドを使用して接続状態を確認するときには、接続状態FIN_WAIT2であることを示しています。

どうすれば接続を閉じて破壊することができますか?

+0

'client.close()'を試しましたか? – fent

+2

client.closeメソッドはありません – mgamer

答えて

15

net.createConnection()は、Socketオブジェクトを返します。 client.destroy()はあなたがしたいことです。

出典:何をしたいhttp://nodejs.org/docs/latest/api/net.html#socket.destroy

+4

終了と破棄の違いは何ですか?破壊後、私はnetstatの状態FIN_WAIT2も見る。 – mgamer

+2

@mgamer '' end() ''は、ソケットの書き込みストリームを閉じるだけで、リモートホストは書き込みストリームを開いたままにしてデータを送信できます – bara

+1

Althrough docsは "エラーの場合のみ必要です"接続を閉じます。私自身は 'socket.close = function(data) \t \t { \t \t \t var self = thisのようなものを使用します。 \t \t \t場合(データ) \t \t \t \t this.write(データ、関数(){Self.destroy();});他 \t \t \t \t \t \t \t this.destroy(); \t \t}; ' – Fr0sT

0

は(client.closeである)、クライアントは将来の接続のために生き、その後続けています。近い将来に接続を使用したくない場合は、それを破棄できます。私の謙虚な意見では、セマンティクスはnet.Socketで一貫しているとは言えません。あなたはソケットをconnect()し、反対側はclose()です。 open()ソケットはより適切でしょう。 client-end()はサーバにfinパケットを送信します

関連する問題