Eae pessoal, beleza?
Antes de ontem eu me juntei aqui ao GB e fiz um tópico me apresentando e tal...
Comecemos...
Para que usar isso? Você me pergunta.
Você pode usar para inúmeras coisas que usam disparo de Bytes, desde BukkitAPI ao Java sem APIs.
Hoje vou ensinar como usar:
InputStream / OutputStream
Bom, não sei se vocês sabem, essas duas classes são abstratas, ou seja, outras classes irão estende-la.
Ex: DataOutputStream, DataInputStream, FileOutputStream, FileInputStream...
[DataInputStream]
Input, como o próprio nome já diz, serve para ler algo, algo que você recebeu, representado pelo método read, você pode usar para se comunicar com servidores locais usando Socket out Servidores externos usando Datagram, Response...
Ex: Socket, você usará para ler uma UTF, Integer, Byte e etc.
Socket socket = new Socket(78432);
DataInputStream stream = new DataInputStream(socket.getInputStream());
String mensagem = input.readUTF();
this.ler(mensagem);
stream.close();
[DataOutputStream]
Output, como o próprio nome já diz, serve para você escrever algo, representado
pelo método write, você pode usar para escrever dados e enviar para
o destinatário.
Ex: Socket, você usará para escrever uma UTF, Integer, Byte e etc.
Socket socket = new Socket(78432);
DataOutputStream stream = new DataOutputStream(socket.getOutputStream());
stream.writeUTF("mensagem: " + this.mensagem);
stream.close();
================================================================================
DataInputStream e DataOutputStream são só um exemplo, pois elas estendem a InputStream e OutputStream respectivamente, você pode usar este exemplo com FileInputStream/FileOutputStream e etc.
Observações importantes:
- Use uma porta que não esteja sendo usada, caso contrário, irá dar erro e sua Socket não será iniciada.
- O método readUTF() retornará null se você usar ele mais do que o writeUTF() usou...
Ex:
stream.writeUTF("Oi");
stream.writeUTF("Como vai");
stream.writeUTF("Tudo certo");
DEPOIS:
stream.readUTF();
stream.readUTF();
stream.readUTF();
stream.readUTF(); <---- Dará null aqui.
- Lembre-se de fechar a Stream depois que usou.
- Se for usar a Socket por Threads diferentes, use synchronized (this).
É isso pessoal, tutorial básico, até a próxima.