Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Не удается подключить клиент к серверу в java

Автор вопроса: Akshay AgarwalОтветов: 1

Я все еще новичок и все такое, и я уверен, что об этом уже спрашивали много раз. Я создал клиент-серверный инструмент в java, и он отлично работает, когда я запускаю его на той же машине. Но когда я пытаюсь запустить клиент на другом компьютере, но в той же сети, он не подключается к серверу. Так может кто-нибудь сказать мне, что я могу попробовать/сделать, чтобы исправить это.

Спасибо.

фрагмент кода от клиента:

serverIP = String.valueOf(InetAddress.getLocalHost().getHostAddress());
int Port = 5000;

.
.
.
try
            {
                sock = new Socket(serverIP, Port);
                InputStreamReader streamreader = new InputStreamReader(sock.getInputStream());
                reader = new BufferedReader(streamreader);
                writer = new PrintWriter(sock.getOutputStream());
                writer.println(username +":"+ encPassword+":has connected"+":Connect"); // Displays to everyone that user connected.
                writer.flush(); // flushes the buffer
                isConnected = true; // Used to see if the client is connected.
            }
            catch (Exception ex)
            {
                chatTextArea.append("Cannot Connect! Try Again. \n");
                System.err.println(ex.getMessage());
                usernameField.setEditable(true);
                pass.setEditable(true);
            }
        ListenThread();
.
.
.

public void ListenThread()
{
     Thread IncomingReader = new Thread(new IncomingReader());
     IncomingReader.start();
}

фрагмент кода с сервера:

public void run()
    {
        clientOutputStreams = new ArrayList();
        onlineUsers = new ArrayList();
        try
        {
            ServerSocket serverSock = new ServerSocket(5000);
        while (true)
            {
                // set up the server writer function and then begin at the same
                // the listener using the Runnable and Thread
                Socket clientSock = serverSock.accept();
                PrintWriter writer = new PrintWriter(clientSock.getOutputStream());
                clientOutputStreams.add(writer);
                // use a Runnable to start a 'second main method that will run
                // the listener
                Thread listener = new Thread(new ClientHandler(clientSock, writer));
                listener.start();
                outputPane.append("Got a connection. \n");
    } // end while
        } // end try
        catch (Exception ex)
        {
            outputPane.append("Error making a connection. \n");
        } // end catch
}
  • "он не подключается к серверу" обычно означает, что вы должны получить исключение, которое должно дать вам приблизительное представление о том, почему он не может подключиться. Mr. L 10.12.2014
  • Я получаю отказ в соединении. Akshay Agarwal 11.12.2014

serverjavaclient

Ответы

Ответ 1 · Ronny Shapiro

Я думаю, ваша проблема в том, что клиент все еще пытается подключиться к машине, на которой он работает:

serverIP = String.valueOf(InetAddress.getLocalHost().getHostAddress());

serverIP должно получить значение удаленной машины (желательно с использованием какой-либо конфигурации)..

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы