Consumo de dados excessivo

3 respostas
M

Bom dia, tenho um aplicativo android fazendo requisições através de paginas jsp e estou tendo uma desagradavel surpresa, mesmo nas requisições onde não tenho resposta o consumo está absurdo tanto nos dados recebidos quanto nos enviados. Tenho um handler que manda de 1 em 1 minuto a posição do aparelho e mesmo nao solicitando resposta estou verificando que o medidor de consumo de bytes recebidos começa a voar, alguem já passou por algo parecido e tem alguma solução para isto? A quantidade de informações é extremamente pequena (coisa de 40 caracteres, equivalente a 40bytes certo?) por envio e a medição aumenta em kb rapidamente.

Desde já agradeço quem tiver alguma informação a respeito.

Luciano

3 Respostas

P

MAGO0102:
Bom dia, tenho um aplicativo android fazendo requisições através de paginas jsp e estou tendo uma desagradavel surpresa, mesmo nas requisições onde não tenho resposta o consumo está absurdo tanto nos dados recebidos quanto nos enviados. Tenho um handler que manda de 1 em 1 minuto a posição do aparelho e mesmo nao solicitando resposta estou verificando que o medidor de consumo de bytes recebidos começa a voar, alguem já passou por algo parecido e tem alguma solução para isto? A quantidade de informações é extremamente pequena (coisa de 40 caracteres, equivalente a 40bytes certo?) por envio e a medição aumenta em kb rapidamente.

Desde já agradeço quem tiver alguma informação a respeito.

Luciano

Você é cobrado pelo que trafega e não pelos 40 bytes.
Aposto minha cueca furada que vc está usando HTTP para transmitir os dados.
Com estes 2 linhas, respondi sua charada.

M

Com certeza boone, obrigado pelo interesse na ajuda, percebi q a cada requisição mesmo quando não recebo nada, consumo 1kb e faço 5 requisições por minuto.
Gostaria de passar essas requisições para socket, acredito que ai sim seria cobrado somente pelos bytes trafegados, mas falha demais, alguem tem um conhecimento profundo sobre sockets e poderia me ajudar nessa implementação?

Desde já agradeço a atenção.

M

Construi um server em socket assim:

classe principal

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

ServerSocket serverSocket = new ServerSocket(PORTA);

System.out.println(INICIADO);

while(true){

Socket socket = serverSocket.accept();

new ServicoThread(socket).start();

}

}

classe serviço extendendo thread
private final Socket socket;

public ServicoThread(Socket socket) {
this.socket = socket;
}

@Override
public void run() {
try {
        DataInputStream in     = new DataInputStream(socket.getInputStream());
        DataOutputStream out   = new DataOutputStream(socket.getOutputStream());
        ExecutaServico ClasseExecutora   = new ExecutaServico(in);
        ClasseExecutora.enviar(out);
        out.close();
        in.close();
        socket.close();
    } catch (IOException e) {
        e.printStackTrace();
}
}

classe executora

public ExecutaServico(DataInputStream in) {

String nomeServico = “”;

try {

this.servico = DataInputStream.readUTF(in).toString().trim();

if(servico.trim().equals(02)){

nomeServico = INSERE;

this.nome    = DataInputStream.readUTF(in);

this.posicao = DataInputStream.readUTF(in);

} catch (IOException ex) {

Logger.getLogger(ExecutaServico.class.getName()).log(Level.SEVERE, null, ex);

}

public void enviar(DataOutputStream out) throws IOException{

if (this.servico.equals("02")) { //INSERE
        int i = cadastrarPosicao();
        if(i > 0){
            out.writeUTF("1");
        } else {
            out.writeUTF("0");
        }

}

public synchronized int cadastrarPosicao(){

int i = 0;

try {

cs 	= bd.conectar().prepareCall("{call RSDB_0005_SPI(?,?)}");

cs.setString(1, nome);

cs.setString(2, posicao);

i = cs.executeUpdate();

} catch (SQLException ex) {

ex.printStackTrace();

} finally {

try {

if (cs != null){

cs.close();

cs = null;

}

} catch (SQLException c){ }

bd.desconectar();

}

return i;

}

Até aqui fiz certo? Tem alguma coisa que precise ser implementada a mais? Nunca usei socket por isso a insegurança.

Agora estou tendo problemas com DeadLocks, alguem poderia me ajudar, preciso “aparecer” com esta solução até segunda-feira, por favor…

Luciano

Criado 10 de agosto de 2012
Ultima resposta 11 de ago. de 2012
Respostas 3
Participantes 2