Простое общение клиент-сервер - PullRequest
1 голос
/ 06 февраля 2012

В настоящее время я изучаю взаимодействие клиент-сервер с использованием Java через сокеты. Прежде всего, я получаю IP-адрес своей машины, используя следующий код.

InetAddress ownIP=InetAddress.getLocalHost();
//the result being 192.168.56.1

Теперь я пишу простое клиент-серверное приложение, используя указанный выше адрес, как следует

public class SimpleClientServer {
public static void main(String[] args)
{
    //sending "Hello World" to the server
    Socket clientSocket = null;
    PrintWriter out = null;
    BufferedReader in = null;

    try
    {

        clientSocket = new Socket("192.168.56.1", 16000);

        out = new PrintWriter(clientSocket.getOutputStream(), true);

        in = new BufferedReader(new InputStreamReader(
                                                 clientSocket.getInputStream()));

        out.println("Hello World");

        out.close();
        in.close();
        clientSocket.close();
    }
    catch(IOException e)
    {
        System.err.println("Error occured " + e);

    }
}
}

Результат hower читает следующее.

Error occured java.net.ConnectException: Connection refused: connect

В чем причина этого. Это просто неправильный адрес хоста?

Ответы [ 2 ]

4 голосов
/ 06 февраля 2012

Из кода, который вы дали, вы, похоже, предполагаете, что на данный момент ничего не прослушивается через порт 16000 для сокета, к которому нужно подключиться.

Если это так, вам нужно реализовать что-то вроде

ServerSocket serverSocket = null;
try {
    serverSocket = new ServerSocket(16000);
}
catch (IOException e) {
    System.err.println("Could not listen on port: 16000.");
    System.exit(1);
}

Дополнительную информацию можно найти в онлайн-документации Java и полный пример включено.

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

С сокетами, независимо от того, какой язык вы используете, вы либо инициируете соединение с помощью socket_connect, либо слушаете и принимаете с помощью socket_listen и socket_accept. Ваш вызов socket_connect пытается подключиться к IP-адресу, который, кажется, ничего не слушает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...