/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Protocole;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;
public class NetworkClient {
private Socket socketClient;
VSMEAP protocole;
public NetworkClient(String host, int port){
protocole = new VSMEAP();
try {
InetAddress ip = InetAddress.getByName(host);
socketClient = new Socket(ip, port);
} catch (Exception ex) {
Logger.getLogger(NetworkClient.class.getName()).log(Level.SEVERE, null, ex);
}
}
public boolean isConnected(){
if(socketClient != null){
return true;
}else{
return false;
}
}
public void disconnect(){
if(this.isConnected()){
try {
socketClient.close();
socketClient = null;
System.out.println("Déconnection réussie");
} catch (IOException ex) {
Logger.getLogger(NetworkServer.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public void send(PacketCom packet){
if(this.isConnected()){
try {
OutputStream os = this.socketClient.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject((Object)packet);
} catch (IOException ex) {
Logger.getLogger(NetworkServer.class.getName()).log(Level.SEVERE, null, ex);
}
}else{
System.out.println("Socket non connectée");
}
}
public PacketCom receive() throws Exception{
try{
InputStream is = this.socketClient.getInputStream();
ObjectInputStream ois = new ObjectInputStream(is);
Object objet = (Object)ois.readObject();
PacketCom MessageFromServer = protocole.messageFromServer(objet);
return MessageFromServer;
}catch(Exception ex){
this.disconnect();
throw (Exception)ex;
}
}
}