Advertisement
Guest User

Untitled

a guest
May 20th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.23 KB | None | 0 0
  1. import java.io.ByteArrayInputStream;
  2. import java.io.ByteArrayOutputStream;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.ObjectInputStream;
  6. import java.io.ObjectOutputStream;
  7. import java.io.OutputStream;
  8. import java.net.DatagramPacket;
  9. import java.net.DatagramSocket;
  10. import java.net.Inet4Address;
  11. import java.net.InetAddress;
  12. import java.net.InetSocketAddress;
  13. import java.net.ServerSocket;
  14. import java.net.Socket;
  15. import java.net.SocketAddress;
  16. import java.net.SocketException;
  17. import java.net.UnknownHostException;
  18.  
  19.  
  20. public class Server extends Thread {
  21.     private ServerSocket server;
  22.  
  23.     private DatabaseConnection databaseConnection;
  24.     public Server()
  25.     {
  26.         try{
  27.             int localPort=3761 ;
  28.  
  29.             Inet4Address localAddress=(Inet4Address) Inet4Address.getByName("192.168.0.198");
  30.             System.out.println("Server started at "+localAddress.toString());
  31.             System.out.println(localAddress.isMCGlobal());
  32.             server = new ServerSocket ();
  33.             server.bind (new InetSocketAddress (localAddress, localPort));
  34.         }catch (SocketException e) {
  35.              
  36.             e.printStackTrace();
  37.         } catch (UnknownHostException e) {
  38.             // TODO Auto-generated catch block
  39.             e.printStackTrace();
  40.         } catch (IOException e) {
  41.             // TODO Auto-generated catch block
  42.             e.printStackTrace();
  43.         }
  44.         databaseConnection=new DatabaseConnection();
  45.     }
  46.    
  47.     public void run()
  48.     {  
  49.      
  50.  
  51.         try {
  52.             databaseConnection.connect();
  53.         } catch (Exception e1) {
  54.             // TODO Auto-generated catch block
  55.             e1.printStackTrace();
  56.         }
  57.         while (true) {
  58.             try {
  59.                 System.err.println("Astept mesaje de la clienti");
  60.                 Socket client = server.accept ();
  61.                 System.out.println("Accepted a connection from: "+client.getInetAddress());
  62.                 ObjectInputStream ois=new ObjectInputStream(client.getInputStream ());
  63.                 Message message=(Message)ois.readObject();
  64.                 if(message!=null)
  65.                     handleMessage(message,client);
  66.             }catch (IOException e) {
  67.                 // TODO Auto-generated catch block
  68.                 e.printStackTrace();
  69.             } catch (ClassNotFoundException e) {
  70.                 // TODO Auto-generated catch block
  71.                 e.printStackTrace();
  72.             }
  73.  
  74.         }
  75.  
  76.     }
  77.  
  78.     public  void handleMessage(final Message message, final Socket client)
  79.     {
  80.        
  81.        
  82.         new Thread()
  83.         {
  84.             public void run()
  85.             {
  86.                 String messageType=message.getClass().getName();
  87.                 if(messageType.equals("ConnectionMessage"))
  88.                 {
  89.                    
  90.                     ObjectOutputStream oos=null;
  91.                     ConnectionMessage cm=(ConnectionMessage)message;
  92.                     switch(cm.getType())
  93.                     {
  94.                     case Message.CREATE:
  95.                         System.out.print("try to create user: "+cm.getUser().getUserID()+" identified by password: ");
  96.                         System.out.print(cm.getUser().getPassword());
  97.                         System.out.println();
  98.                         ResponseMessage responseMessage=databaseConnection.create(cm.getUser());
  99.                        
  100.                        
  101.                         try {
  102.                            
  103.                             oos=new ObjectOutputStream(client.getOutputStream ());
  104.                             oos.flush();
  105.                            
  106.                    
  107.                         } catch (IOException e) {
  108.                             // TODO Auto-generated catch block
  109.                             e.printStackTrace();
  110.                         }
  111.                         try {
  112.                             oos.writeObject(responseMessage);
  113.                         } catch (IOException e) {
  114.                             // TODO Auto-generated catch block
  115.                             e.printStackTrace();
  116.                         }
  117.                        
  118.                         System.out.println("ResponseMessage sent: "+responseMessage.getValue());
  119.                         break;
  120.                     case Message.SIGNIN:
  121.                         responseMessage=null;
  122.                         System.out.print("user: "+cm.getUser().getUserID()+"tries to sign in with password ");
  123.                         System.out.print(cm.getUser().getPassword());
  124.                         System.out.println();
  125.                    
  126.                        
  127.                             responseMessage=databaseConnection.signIn(cm.getUser().getUserID(),cm.getUser().getPassword());
  128.                    
  129.                            
  130.                            
  131.                             oos=null;
  132.                             try {
  133.                                
  134.                                 oos=new ObjectOutputStream(client.getOutputStream ());
  135.                                 oos.flush();
  136.                                
  137.                                
  138.                        
  139.                             } catch (IOException e) {
  140.                                 // TODO Auto-generated catch block
  141.                                 e.printStackTrace();
  142.                             }
  143.                             try {
  144.                                 oos.writeObject(responseMessage);
  145.                             } catch (IOException e) {
  146.                                 // TODO Auto-generated catch block
  147.                                 e.printStackTrace();
  148.                             }
  149.                            
  150.                     }
  151.                 }
  152.                
  153.             }
  154.         }.start();
  155.     }
  156.     public static void main(String []args)
  157.     {
  158.         Server s=new Server();
  159.         s.start();
  160.     }
  161.  
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement