Я пробовал очень простое сокетное соединение между node.js и java-программой здесь .
Когда я попробовал код, предоставленный на моем локальном хосте, все работает нормально.Но когда я подключился к другому ноутбуку, я не смог показать ни одного сообщения на стороне сервера.
В основном я изменил "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();
}
Но получил IoException, который не может привязаться к этому ip.
Любые предложения о том, как изменить код для создания сокет-соединения между двумя ноутбуками с разными ips?
update
(1) Я лично не думаю,Я спрашиваю о том же, что и этот пост .У меня нет проблем с работой на локальном хосте, но есть проблема при использовании двух машин с разными ips.
(2) Я проверил, что брандмауэр моего ноутбука выключен.