Javascript 为什么要运行此错误';净';模块node.js

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中

我正在使用.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中启动了一个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.
    });
});