Неуверенность в конфигурации IP-адреса Client Server в Java - PullRequest
2 голосов
/ 16 февраля 2012

У меня написана простая пара клиент-сервер, отправляющая объект на сервер.Я проверил код, и он работает, при условии, что я использую LOCALHOST в качестве имени сервера.

При попытке подключиться к серверу, используя мой собственный 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();

}

1 Ответ

2 голосов
/ 16 февраля 2012

Вам нужно либо привязать свой сервер к 0.0.0.0 (подстановочный знак, все интерфейсы на вашей машине), либо к конкретному IP, который вы хотите прослушивать. Используемый вами конструктор ServerSocket берет только номер порта и привязывается к localhost, который будет преобразован в 127.0.0.1

server = new ServerSocket(3000, 5, InetAddress.getByName("0.0.0.0"));

Изменить, чтобы добавить: Второй параметр имеет размер отставание . Это количество подключений, которые могут быть поставлены в очередь, ожидая, пока вы их наберете accept(), прежде чем дополнительные попытки подключения приведут к «отказу в подключении».

...