Android & Object Stream Stream: противостояние - PullRequest
0 голосов
/ 22 февраля 2012

Цель приложения - просто отправить строковый объект на сервер на моей машине.Все конфигурации переадресации портов настроены так, как я тестировал сервер с Java-клиентом на моей машине.

Проблема заключается в общении с сервером из Android-клиента.Сервер, кажется, никогда не будет поражен.

Основное изложение приложения: простой экран с 1 кнопкой и 1 просмотром текста.Кнопка отправляет объект на сервер, сервер отвечает сообщением, которое обновляет текстовое представление.Как я уже сказал, сервер никогда не поражается.У кого-нибудь есть идеи, что я могу сделать, чтобы это исправить?

public class ObjectTestActivity extends Activity {

Button submit;
private String string = "Hello Android";
private ObjectOutputStream oos;
private ObjectInputStream ois;
private final int PORT = 3000;

TextView tv;


@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button send = (Button) findViewById(R.id.send);
    tv = (TextView) findViewById(R.id.tv);

    try{

        InetAddress host = InetAddress.getLocalHost();
        Socket socket = new Socket("xx.xx.xxx.xxx", PORT);

        oos = new ObjectOutputStream(socket.getOutputStream());
        ois = new ObjectInputStream(socket.getInputStream());

    }catch(UnknownHostException e){}
     catch(IOException e){}
}


public void onClick(View view){

    try{
        oos.writeObject(string);
        String serverMsg = (String) ois.readObject();
        ois.close();
        oos.close();
                    tv.setText("Message from Server: " + serverMsg);
    }catch(IOException e){}
     catch(ClassNotFoundException e){}
}

}

1 Ответ

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

Попробуйте сначала протестировать код вашего Android-клиента из простого Java-клиента. Если это работает, по крайней мере, вы знаете, это проблема Android.

А затем посмотрите на файл манифеста. Вам нужен "android.permission.INTERNET".

Вы не печатаете трассировку стека на Исключениях в onCreate, поэтому нет никакого способа узнать, произошло ли исключение.

Также попробуйте использовать более высокий номер порта 32344.

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