Ver mensagens sem resposta | Ver tópicos ativos Hoje é 20 Jul 2019, 18:45



Responder Tópico  [ 1 Mensagem ] 
 Enviar dados com Socket 
Autor Mensagem
Anatomy of an App
Anatomy of an App
Avatar de usuário

Data de registro: 05 Ago 2015, 22:15
Mensagens: 148
Mensagem Enviar dados com Socket
Pessoal, boa noite. Estou usando socket para fazer uma conexão entre Android(cliente)-PC(servidor), está funcionando perfeitamente, porém não consigo enviar mais de um dado (nesse caso, string). Não entendo muito bem de socket, então vou deixar o código aqui para facilitar o entendimento do que estou querendo dizer:

public class MessageSender extends AsyncTask<String,String,Boolean> {

    Socket s;
    OutputStream dos;
    InputStream is;
    PrintWriter pw;

    @Override
    protected Boolean doInBackground(String... params) {

        boolean result = false;

        try {
            SocketAddress sockaddr = new InetSocketAddress("192.168.0.8", 5500);
            s = new Socket();
            s.connect(sockaddr, 5000); //
            if (s.isConnected()) {
                publishProgress("CONNECTED");
                is = s.getInputStream();
                dos = s.getOutputStream();
                for (String p : params) {
                    dos.write(p.getBytes());
                }
                byte[] buff = new byte[2048];
                int buffData = is.read(buff, 0, 2048);
                while (buffData != -1) {
                    String response = new String(buff);
                    // Envia os dados
                    publishProgress(response);
                    buffData = is.read(buff, 0, 2048);
                }
            } else {
                publishProgress("CONNECT ERROR");
            }
        } catch (IOException e) {
            publishProgress("ERROR");
            Log.e("SocketAndroid", "Erro de entrada e saida", e);
            result = true;
        } catch (Exception e) {
            publishProgress("ERROR");
            Log.e("SocketAndroid", "Erro generico", e);
            result = true;
        } finally {
            try {
                if (is != null) {
                    is.close();
                }
                if (dos != null) {
                    dos.close();
                }
                if (s != null) {
                    s.close();
                }
            } catch (Exception e) {
                Log.e("SocketAndroid", "Erro ao fechar conexao", e);
            }
        }
        return result;
    }

    public void sendData(String data) throws IOException {
        if (s != null && s.isConnected()) {
            Log.i("SoDaErroIssoAq", "Éoq?");
            dos.write(data.getBytes());
        }
        else
            Log.i("SoDaErroIssoAq", "Hmm...");
    }

}


Eu tentei usar o método sendData na Atividade Principal quando fosse enviada uma 2° ou 3° mensagem, mas fazendo os testes percebi q o socket não mantém a conexão, ou seja, inútil. Não sei mais o que fazer para tentar fazer isso dar certo...

_________________
“Cães não precisam de carros luxuosos, casas grandes ou de roupas chiques. Água e alimento já são o suficiente. Um cachorro não liga se você é rico ou pobre. Esperto ou não. Inteligente ou não. Entregue o seu coração e ele dará o dele. De quantas pessoas podemos dizer o mesmo? Quantas pessoas fazem você se sentir raro, puro e especial? Quantas pessoas nos fazem sentir extraordinários? ” - John Grogan


21 Dez 2018, 06:14
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 1 Mensagem ] 

Quem está online

Usuários vendo este fórum: (_FM_), ac0502, adilson.afl, Alessandro Tavares, allart, allone, andi, andreluiz, andrewort, Androidthebest, apoena, AT-AT, avsouza, beeshop, bernardodauer, bocajunior88, bozzano, Bravox, bruno.abd, carlos rodrigues, carlos.macleod, Cassius, Chanceler Supremo Finis Valorum, charly, Crazy_Droid, darllan.marinho, Darth Maul, Diego, diegorrborges, eliasmachado_rj, Eliezer Reis, erissi, faco, fernando neves, flashking, flaviohssantos, flaviolemos, Gabriel Laet, Gomes, Google Desktop, Guilherme, guilhermepilotti, gustavobarbosa, jacksaum, jpespindola, julianafsa, klassmann, Kureiton, lalaine, leosl81, LForce, lhdiassilva, Lincoln, Mace Windu, marcos_trb, marcosf63, mateusff, mayahaslinger, mcroft, memnoch, MpassosT, mrkensley, nandopierre, niloleite, nivaldo, osternack, otium, Patricia, phsantos, PicsearchDroid, polonia, Princesa Léia Organa, Rafael Alencar, Rafael Felix, renanpl, ricardo, ricdigital, roberto caceres, RodReis, Rodrigo, rogerio.alcantara, rogeriokta, romualdo, Roney dos Santos, sidnei.gs, siker C3PO, Silvio Vaz, Stormtrooper, tavares767, thiago20, thiaguim, thienne, thosjanas, vandob, vanmars, VIEIRIX, VILESOFT, wagner_francisco, wingdoido, Wryel e 14 visitantes


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:

© 2007 - 2016 Portal Android - Comunidade de Desenvolvedores Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi