Javascript 为什么要运行此错误';净';模块node.js
我正在使用.net模块并在6112上打开tcp端口Javascript 为什么要运行此错误';净';模块node.js,javascript,node.js,sockets,Javascript,Node.js,Sockets,我正在使用.net模块并在6112上打开tcp端口 var net = require('net'); var server = net.createServer(function (socket) { //'connection' listener }); server.listen(6112, function () { //'listening' listener console.log('server started'); }); 在同一台机器上,我在main中
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在一年前告诉他,调试器仍然很糟糕。您正在创建一个套接字并从中连接,但没有关闭它。因此,当程序完成时,对node.js来说,连接似乎被重置(突然关闭)。调用
socket.close()代码>在程序完成之前
您可以这样构造代码:
try {
tryStatements //your code that is causing exceptions
}
catch(exception){
catchStatements //handle caught exceptions
}
finally {
finallyStatements //execute it anyways
}
或者,如果您希望从运行时捕获未捕获的异常,请使用此选项(主进程不会在异常时退出)
问题出在java代码中,该代码导致node.js在异常时退出。所以一定要添加socket.close()代码>。以上只是node.js部分的错误处理。您需要监听套接字上的错误。节点的默认行为是,当某个东西发出('error')
时,如果没有附加错误处理程序,它将抛出该错误,从而使应用程序崩溃
var server = net.createServer(function (socket) {
socket.on('error', function(err){
// Handle the connection error.
});
});
在您的示例中,您甚至没有尝试通过套接字发送任何内容。Java应用程序实例化套接字,然后退出,可能节点将其解释为意外的连接重播。您是否尝试发送任何内容,连接侦听器是否曾被调用?还有,调试器“shitt”是什么意思?我已经通过Node inspector/Chrome和WebStorm的界面使用了大量Node.js/V8调试功能,它非常有用。。。也许试试吧?我需要抓住例外,我确信这一点。我该怎么做呢?我该怎么捕捉这个异常,我该怎么修改代码来捕捉异常?真是太好了…谢谢你,伙计。我需要好好想想这件事,因为它非常有用
var server = net.createServer(function (socket) {
socket.on('error', function(err){
// Handle the connection error.
});
});