Android-приложение для связи с сервером через сокеты - PullRequest
0 голосов
/ 30 ноября 2011

Я создаю приложение для Android, которое связывается с сервером. Когда Android-телефон получает SMS, я хочу, чтобы он отправил его через сокет на мой сервер.

публичный сервер класса {

public static final int PORT = 8080;
public static void main(String[] args) throws IOException {
    ServerSocket s = new ServerSocket(PORT);
    try {
        Socket socket = s.accept();
        try {
            BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String str = in.readLine();
            System.out.println(str);
        } 
        finally {
            socket.close();
        }
    } 
    finally {
        s.close();
    }
} 

}

Это мой клиент:

public Client(String message){

    try {
        Socket socket = new Socket("127.0.0.1", 8080);
        PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
        out.println(message);
        socket.close();
    }catch(Exception e){
        e.printStackTrace();
    }
}

Я не получаю никакого соединения, когда звоню в класс Client из приложения для Android. Кто-нибудь знает, как решить эту проблему?

Класс «Клиент» вызывается из метода onReceive (контекст, намерение) {метод, когда сообщение принимается по телефону.

Ответы [ 2 ]

2 голосов
/ 30 ноября 2011

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

Изменить

Socket socket = new Socket("127.0.0.1", 8080);

на

Socket socket = new Socket("your server's IP", 8080);

Пожалуйста, не меняйте буквально на "IP вашего сервера" :) makeэто 192.168.1.104 или любой другой адрес сервера в сети.

1 голос
/ 30 ноября 2011

Я решил, забыл добавить это в мой androidmanifest.xlm

< uses-permission android:name="android.permission.INTERNET">< /uses-permission>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...