[英]Why am i getting this error running 'net' module node.js
我在6112上使用.net模块化和打开tcp端口。
var net = require('net');
var server = net.createServer(function (socket) { //'connection' listener
});
server.listen(6112, function () { //'listening' listener
console.log('server started');
});
在同一台机器上,我在main中启动一个java套接字。
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
System.out.println("Connecting...");
Socket socket = new Socket("localhost", 6112);
System.out.println("Connected");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
我得到这个例外,
C:\Users\Mustafa\WebstormProjects\Node.Js>node hello.js
server started
events.js:72
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at errnoException (net.js:884:11)
at TCP.onread (net.js:539:19)
这是一个错误或什么的,因为如果我遇到这个错误,我将非常感谢。
我没有使用调试器的原因,因为Ryan在一年前说他自己,它仍然是shitt。
您需要侦听套接字上的错误。 Node有默认行为,当某些东西发生.emit('error')
,如果没有附加错误处理程序,它将throw
错误,从而导致应用程序崩溃。
var server = net.createServer(function (socket) {
socket.on('error', function(err){
// Handle the connection error.
});
});
您正在创建一个套接字并从中进行连接,但不是关闭它。 因此,当程序完成时,对于node.js,它看起来像是重置连接(突然关闭)。 调用socket.close();
在节目结束之前。
您可以通过以下方式构建代码:
try {
tryStatements //your code that is causing exceptions
}
catch(exception){
catchStatements //handle caught exceptions
}
finally {
finallyStatements //execute it anyways
}
或者,如果您想从运行时捕获未捕获的异常,请使用此方法(主进程不会在异常时退出)
process.on('uncaughtException', function(err) {
console.log('Caught exception: ' + err);
console.log(err.stack);
});
问题出在java代码中,导致node.js在异常时退出。 所以一定要添加socket.close();
。 以上只是node.js部分的错误处理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.