从Nodejs到Java文件的消息抛出错误:连接ECONNREFUSED

时间:2016-10-27 16:10:54

标签: java node.js

server.js
var net = require('net');
var client = net.connect(5151, 'localhost', function() {
  console.log("Hello from NodeJs");
});
client.on('error', function(ex) {
  console.log("handled error");
  console.log(ex);
});

test.java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class nodeListeners {

    public static void main(String[] args) {
        ServerSocket server;
        Socket client;
        InputStream input;

        try {
            server = new ServerSocket(5151);
            client = server.accept();

            input = client.getInputStream();
            String inputString = nodeListeners.inputStreamAsString(input);

            System.out.println(inputString);

            client.close();
            server.close();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static String inputStreamAsString(InputStream stream) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(stream));
        StringBuilder sb = new StringBuilder();
        String line = null;

        while ((line = br.readLine()) != null) {
            sb.append(line + "\n");
        }

        br.close();
        return sb.toString();
    }

}

我正在研究这个类似的应用程序Node-> Java Sending data from node.js to Java using sockets 从错误中我看到我的连接被拒绝,因为Java端的端口没有打开。如何在java端打开端​​口5151?

1 个答案:

答案 0 :(得分:0)

请尝试使用其他端口,例如1010。 它在5151为我工作。尝试设置断点并调试您的Java服务器端。 理想情况下,在服务器端接受应该在while循环中进行,因为在当前实现中,您将只能回答一个连接。

你可以做到

netstat -abno

检查端口是否正在收听