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?
答案 0 :(得分:0)
请尝试使用其他端口,例如1010。 它在5151为我工作。尝试设置断点并调试您的Java服务器端。 理想情况下,在服务器端接受应该在while循环中进行,因为在当前实现中,您将只能回答一个连接。
你可以做到
netstat -abno
检查端口是否正在收听