У меня есть написанная простая пара Client-Server, отправляющая объект на сервер. Я проверил код, и он работает, если я использую LOCALHOST в качестве имени сервера.Неверная конфигурация IP-сервера клиентского сервера в Java
При попытке подключения к серверу с использованием моего собственного IP-адреса клиент постоянно отключается. Я не могу не думать, что я пропустил трюк, если кто-то может взглянуть на код, я был бы очень благодарен. Большое спасибо, J.
клиент
ObjectOutputStream oos = null;
ObjectInputStream ois = null;
Socket socket = null;
Person p = null;
try {
// My IP address entered here..
socket = new Socket("xx.xx.xxx.xxx", 3000);
// open I/O streams for objects
oos = new ObjectOutputStream(socket.getOutputStream());
ois = new ObjectInputStream(socket.getInputStream());
/*
// read an object from the server
p = (Person) ois.readObject();
System.out.print("Name is: " + p.getName());
oos.close();
ois.close();*/
//write object to the server
// p = new Person("HAL");
oos.writeObject(new Person("HAL"));
oos.flush();
ois.close();
oos.close();
} catch(Exception e) {
System.out.println(e.getMessage());
}
Сервер
public Server() throws Exception {
server = new ServerSocket(3000);
System.out.println("Server listening on port 3000.");
this.start();
}
Привет, Брайан, спасибо за ответ, он помог мне понять процесс. Однако при использовании вышеуказанного конструктора сервера соединение все еще синхронизируется. Я даже пытался установить InetAddress на свой IP-адрес, но дал мне Bind Exception при компиляции. – Jnanathan
Вы делаете это на своем домашнем компьютере, который находится за маршрутизатором? Вышеприведенный код отлично работает на моей машине. Если вы можете опубликовать трассировку стека, я могу помочь. –
Да. Я отключил брандмауэр на машине, над которой я работаю. Это довольно странно, я пробовал около 12 раз с момента последнего ответа. И он работал только один раз. – Jnanathan