Olá!
Fiz uma aplicação onde envio várias mensagens via Sockets, mas percebo que, se eu enviar muitas mensagens, umas 500 mensagens para um servidor, percebo que nem todas as mensagens são enviadas.
Exemplo:
Socket s = null;
PrintStream ps = null;
String tmpLine;
//abre um socket para o IP:PORTA digitado nos txts
s = new Socket(txtIP.getText(), Integer.parseInt(txtPort.getText()));
txtStatus.setText("Enviando a mensagem " + (x+1));
//cria uma stream para enviar as mensagens
ps = new PrintStream(s.getOutputStream());
//loop para mandar as mensagens lidas de uma List
for (int x = 0; x < messages.getItemCount(); x++)
{
//pega a mensagem x da List (a List tem XXXXXX mensagens, ou linhas com vários caracteres)
tmpLine = messages.getItem(x);
//manda a mensagem para o socket
ps.println(tmpLine);
ps.flush();
}
//fechando o socket....
s.close();
Quando eu executo isso (numa Thread separada, ou etc...), metade (ou mais) das mensagens não são enviadas, havendo perda de dados.
Existe alguma outra alternativa de fazer sockets e enviar essas mensagens sem perder nada???
(OBS.: O servidor é feito em C#. Uma aplicação IGUAL a essa feita em C#, também, manda as mensagens tranquilamente sem nenhum erro)