私はこのスクリプトを実行しようとします:
require('net').createServer().listen('/tmp/test');
最初のスクリプトは正常に実行されますが、2 回目の開始時に node.js でエラーがスローされます:エラー: listen EADDRINUSE
ソケットを再利用する方法はありますか (unix と tcp も)?
私はこのスクリプトを実行しようとします:
require('net').createServer().listen('/tmp/test');
最初のスクリプトは正常に実行されますが、2 回目の開始時に node.js でエラーがスローされます:エラー: listen EADDRINUSE
ソケットを再利用する方法はありますか (unix と tcp も)?
どうやら、最初の呼び出しからのスクリプト/リスナー/サーバーがまだ実行されています。同じポートを再度使用するには、リッスンしているスクリプト/プロセスを強制終了する必要があります。
「正しい」方法 (Node.js のドキュメントによると) は、サーバーを で閉じることserver.close()
です。これにより、creates ドメイン ソケットがファイル システムから削除されます。
したがって、サーバーを再度実行すると、毎回新しいドメインソケットが再作成または削除されるため、「EADDRINUSE」エラーは発生しません。
Windows(名前付きパイプを使用)では、この問題はありません.サーバープロセスが閉じられると、OSは作成された名前付きパイプを自動的に削除します