@Masteron

Android и сокеты?

Ну вкратце: написал сервер на java и написал клиент android тоже java
Есть активность в которой происходит регистрация вот код:
public class CheckActivity extends ActionBarActivity {
    private String login = null;
    private String password = null;
    private ServerThread client = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_check);
    }

    public void onClickCheck(View view) throws IOException, ClassNotFoundException {
        EditText editLogin = (EditText) findViewById(R.id.editLogin);
        EditText editPassword = (EditText) findViewById(R.id.editPassword);
        login = editLogin.getText().toString();
        password = editPassword.getText().toString();
        client = new ServerThread(new Message(login,password,"R"));
        if(client.check()==true){
            TextView checkText = (TextView)findViewById(R.id.checkText);
            checkText.setText("Регистрация успешно завершена");
        }
    }

    }

И дальше все переходит в отдельный поток:
public class ServerThread extends Thread {
    private Message clientSend = null;
    private Socket fromServer = null;
    private ObjectOutputStream out = null;
    private ObjectInputStream in = null;
    //конструктор для регистрации
    public ServerThread(Message clientSend){
        this.clientSend = clientSend;
    }
    public Boolean check() throws IOException, ClassNotFoundException {
        out.writeObject(clientSend);
        Message serverSend = (Message) in.readObject();
        if(serverSend.getMessage()=="true"){
            return true;
        }
        else {
            return false;
        }
    }
    public void run(){

        try {
            fromServer = new Socket("localhost",5050);
            out = new ObjectOutputStream(fromServer.getOutputStream());
            in = new ObjectInputStream(fromServer.getInputStream());
            if(clientSend.getSight()=="R") {
                check();
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

}

Но при попытке вызова метода onClickCheck через кнопку т.е Button, приложение сразу же закрывается. В чем проблема и как от неё избавится? P.S В сокетах я пока что новичок.
  • Вопрос задан
  • 158 просмотров
Пригласить эксперта
Ответы на вопрос 1
@georgeci
Если новичок и нет цели самому с нуля разобраться в сокетах, то лучше не пилить свой велосипед.
В своих проектах я использую socket.io.

А по вопросу, совет, не забывайте публиковать стектрейс. Тут код не сложный и не сложно найти проблему.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы