SUBANGKAR

Offline_Nov-17_Zahin_Server

Nov 17th, 2016
127
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * Created by Zahin on 11/17/2016.
  3.  */
  4. import java.io.ByteArrayInputStream;
  5. import java.io.IOException;
  6. import java.io.ObjectInputStream;
  7. import java.net.BindException;
  8. import java.net.DatagramPacket;
  9. import java.net.DatagramSocket;
  10. import java.net.InetAddress;
  11. import java.net.Socket;
  12. import java.net.SocketException;
  13. import java.util.Hashtable;
  14. import java.util.Scanner;
  15. import java.util.StringTokenizer;
  16.  
  17.  
  18.  
  19. public class Server {
  20.     public static void main(String[] args) {
  21.         String via="CSE108_NetworkingAssignmentServer";
  22.         DatagramSocket socketReceiver;
  23.         DatagramSocket socketSender;
  24.         DatagramPacket receivingPack;
  25.         DatagramPacket sendingPack;
  26.         String[] strArray= new String[4];
  27.         Hashtable<String,User> table=null;
  28.         int counter1=0;
  29.         int counter2=0;
  30.         try{
  31.             socketReceiver = new DatagramSocket(1202);
  32.             socketSender = new DatagramSocket();
  33.             receivingPack = new DatagramPacket(new byte[1024], 1024);
  34.             while(true){
  35.                 socketReceiver.receive(receivingPack);
  36.  
  37.                 byte[] receivedData= receivingPack.getData();
  38.                 String str1 = new String(receivedData);
  39.                 InetAddress IPAddress = receivingPack.getAddress();
  40.                 int port = receivingPack.getPort();
  41.                 StringTokenizer st= new StringTokenizer(str1," ");
  42.                 while (st.hasMoreTokens()) {
  43.                     strArray[counter1]=st.nextToken();
  44.                     counter1++;
  45.                 }
  46.                 if (strArray[0].equals(via)== false) {
  47.                     System.out.println("Warning: Server name mismatch. Message dropped.");
  48.                 }
  49.                 else if (strArray[0].equals(via)== true && !table.containsKey(strArray[1]) ){
  50.                     System.out.println("Warning: Unknown recipient. Message dropped.");
  51.                     //ip ar port er condition add korte hobe
  52.  
  53.                 }
  54.                 else if(strArray[0].equals(via)== true && strArray[1].equals(via)== true )  {
  55.                     int portR= Integer.parseInt(strArray[3]);
  56.                     User user = new User(portR,IPAddress) ;
  57.                     table.put(strArray[2],user);
  58.  
  59.                 }
  60.                 else if(strArray[0].equals(via)== true && strArray[1].equals(via)== false && table.containsKey(strArray[1])  )  {
  61.                     byte[] sendingData = strArray[3].getBytes();
  62.                     sendingPack =new DatagramPacket(sendingData, sendingData.length, IPAddress, port);
  63.                     socketSender.send(sendingPack);
  64.  
  65.                 }
  66.  
  67.  
  68.                 System.exit(0);
  69.             }
  70.  
  71.  
  72.  
  73.  
  74.  
  75.         } catch (SocketException e1) {
  76.             e1.printStackTrace();
  77.         } catch (IOException e1) {
  78.             e1.printStackTrace();
  79.         }
  80.  
  81.     }catch(SocketException e) {
  82.             e.printStackTrace();
  83.         }
  84.     }
  85. }
RAW Paste Data