Java, клиент-серверная связь - PullRequest
0 голосов
/ 22 января 2012

У меня есть маленький server.jar, который слушает команды GET и END на порту 10000.

Мой код клиента:

package communication;

import java.io.*;
import java.net.*;

public class Client {

public static void main(String args[]) throws Exception {
    try {

            Socket socket = null;
            PrintWriter out = null;
            BufferedReader in = null;

            socket = new Socket("localhost",10000);
            System.out.println("SOCKET = " + socket);
            System.out.print(socket.getInetAddress() + "\n");
            System.out.print(socket.getInputStream() + "\n");
            System.out.println(socket.isConnected() + "\n");

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

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

            String str = "GET";
            out.println(str);   
            String reponse = in.readLine();
            System.out.println(socket.isConnected() + "\n");
            for(int i = 0; i < 10; i++){
                    out.println(str);          // envoi d'un message
                    reponse = in.readLine();      // lecture de la reponse
                    System.out.println("Forme recue: " + reponse);
            }
            System.out.println("END");     // message de terminaison
            out.println("END") ;
            in.close();
            out.close();
            socket.close();

    }
    catch(IOException e) {
            System.out.println(e.getCause());
    }
}
}

Я знаю, что этот код работает, потому что онработает на одном из моих компьютеров.Тем не менее, я не могу заставить его работать на другом.Конфигурации на обоих: Windows 7 64, JRE 6, Eclipse.

Мое приложение server.jar открывает небольшой графический интерфейс, который позволяет мне узнать, открыто ли соединение или нет, что никогда не происходило на компьютере, которыйКстати застряли в строке readLine ().

Я пытался отключить брандмауэр Windows, антивирус ... ничего не помогло.

Кто-нибудь знает, что здесь происходит не так?

спасибо !!

Ответы [ 2 ]

0 голосов
/ 23 января 2012

Я смотрю на строку localhost, и у меня есть догадка, которая может быть проблемой.

В ответе на этот пост может быть что-то с :: localhostэто необходимо прокомментировать, а также жестко закодировать localhost как 127.0.0.1 в вашем C: \ Windows \ System32 \ drivers \ etc \ hosts файле.

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

0 голосов
/ 22 января 2012

Первое, что нужно попробовать - добавить out.flush () сразу после вашего out.println.

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