我正在尝试在node.js和Java程序here之间进行最基本的套接字通信。
当我尝试在本地主机上提供的代码时,一切正常。但是当我使用另一台笔记本电脑进行连接时,服务器端无法显示任何消息。
基本上,我将“ localhost”更改为IP地址,如下所示:
var net = require('net');
var client = net.connect(4444, myIp, function() {
console.log("connected!");
});
client.setEncoding('utf8');
setInterval(function() {
console.log("Writing....")
var ret = client.write('Hello from node.js\n');
console.log("Wrote", ret)
}, 1000);
并且服务器代码保持不变。但是我在服务器端没有看到任何输出,并且客户端中也未显示“已连接”消息。
我也尝试在服务器中修改代码。我将server = new ServerSocket(4444)
更改为server = new ServerSocket(4444, 50, InetAddress.getByName(myIp))
:
public class SocketServer {
public static final int port = 12345;
private ServerSocket server;
public void listen() {
try {
// server = new ServerSocket(4444);
server = new ServerSocket(4444, 50, InetAddress.getByName(myIp));
} catch (IOException e) {
System.out.println("Could not listen on port 4444");
System.exit(-1);
}
while(true){
... Same code here
}
}
/* creating new server and call it's listen method */
public static void main(String[] args) {
new SocketServer().listen();
}
但是有无法绑定到该ip的IoException。
关于如何修改代码以在具有不同ips的两台笔记本电脑之间建立套接字连接的任何建议吗?
更新
(1)我个人认为我并没有问与此post相同的问题。我在本地主机上工作没有问题,但是在使用两台具有不同ips的计算机时遇到了问题。
(2)我检查了笔记本电脑的防火墙是否关闭。