Olá, estou precisando implementar uma aplicação que utilize array de bytes para envio de dados. Eu tenho três formatos de mensagens que devem ser enviadas pela rede entre dois computadores, os tipos de mensagens são:
public void mensagemUm(int, float, long)
public void mensagemDois(int, int, long)
public void mensagemTres(int, bytes)
A forma de como irei enviar as mensagens é utilizando socket. Não tenho a menor ideia de como implementar. Alguem teria alguma sugestão de aplicação exemplo de como utilizar isso?
OutputStream e InputStream… tem alguns exemplos prontos se você procurar melhor.
Um pequeno exemplo abaixo. Quando o cliente se conecta ao servidor, o servidor envia uma mensagem para o cliente e esse imprime na tela a mensagem:
import java.io.DataInputStream;
import java.io.IOException;
import java.net.Socket;
public class TesteSocketsClient {
public static void main(String[] args) throws IOException, InterruptedException {
Socket s = new Socket("127.0.0.1", 8080);
DataInputStream is = new DataInputStream(s.getInputStream());
String resposta = is.readUTF();
System.out.println(resposta);
}
}
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class TesteSockets {
public static void main(String[] args) throws IOException {
ServerSocket ss = new ServerSocket(8080);
while (true) {
Socket s = ss.accept();
DataOutputStream os = new DataOutputStream(s.getOutputStream());
if (s != null) {
os.writeUTF("Conectado OK.");
os.flush();
}
}
}
}
Como você quer enviar o vetor de bytes diretamente, é só substituir o método de envio… no exemplo acima o método já abstrai a parte de envio de bytes… por isso você já usa uma String nele… é só mudar o método.