Boa Tarde Pessoal,
Estou o meu problema é o seguinte: estou trabalhando com socket na faculdade, só que tenho uma estrutura e nela eu preciso verificar o que eu estou recebendo nesse socket, Se é um objeto ou se é uma String.
Alguém já viu isso?
package control;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import model.Ficheiro;
/**
*
* @author Júlio
*/
public class Servidor {
private ServerSocket server;
private Socket socket;
private ObjectInputStream in;
private ObjectOutputStream out;
public Servidor() {
try {
this.server = new ServerSocket(1398);
JOptionPane.showMessageDialog(null, "Aberto a conexões", "Conexão", JOptionPane.INFORMATION_MESSAGE);
socket = server.accept();
} catch (IOException ex) {
Logger.getLogger(Servidor.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void received(){
while(true){
Ficheiro ficheiro = null;
try {
in = new ObjectInputStream(socket.getInputStream());
Object object = (Object) in.readObject();
if (object.equals(ficheiro)){
ficheiro = (Ficheiro) in.readObject();
gravarArquivo(ficheiro);
}else{
selecionarArquivo(String.valueOf(in.readObject()));
}
out = new ObjectOutputStream(socket.getOutputStream());
out.writeObject("Recebido");
socket.close();
socket = server.accept();
} catch (IOException ex) {
Logger.getLogger(Servidor.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(Servidor.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public void gravarArquivo(Ficheiro ficheiro){
String caminho = "c:/Users/Júlio/Desktop/"+ficheiro.getDescricao()+".fgrw";
try {
FileOutputStream arquivo = new FileOutputStream(caminho);
ObjectOutputStream obj = new ObjectOutputStream(arquivo);
obj.writeObject(ficheiro);
obj.flush();
obj.close();
arquivo.flush();
arquivo.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void selecionarArquivo(String nomeArquivo){
File file = new File("c:/Users/Júlio/Desktop/"+nomeArquivo+".fgrw");
if(file.exists()){
try {
out = new ObjectOutputStream(socket.getOutputStream());
out.writeObject(file);
} catch (IOException ex) {
Logger.getLogger(Servidor.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
}
}
public static void main(String []args){
Servidor server = new Servidor();
server.received();
}
}