3

私はこのスクリプトを実行しようとします:

require('net').createServer().listen('/tmp/test');

最初のスクリプトは正常に実行されますが、2 回目の開始時に node.js でエラーがスローされます:エラー: listen EADDRINUSE

ソケットを再利用する方法はありますか (unix と tcp も)?

4

2 に答える 2

2

どうやら、最初の呼び出しからのスクリプト/リスナー/サーバーがまだ実行されています。同じポートを再度使用するには、リッスンしているスクリプト/プロセスを強制終了する必要があります。

于 2012-09-22T11:21:20.320 に答える
0

「正しい」方法 (Node.js のドキュメントによると) は、サーバーを で閉じることserver.close()です。これにより、creates ドメイン ソケットがファイル システムから削除されます。

したがって、サーバーを再度実行すると、毎回新しいドメインソケットが再作成または削除されるため、「EADDRINUSE」エラーは発生しません。

Windows(名前付きパイプを使用)では、この問題はありません.サーバープロセスが閉じられると、OSは作成された名前付きパイプを自動的に削除します

于 2020-05-28T07:35:30.330 に答える