Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.13 KB | None | 0 0
  1. package projsd;
  2.  
  3. import java.net.MulticastSocket;
  4. import java.net.DatagramPacket;
  5. import java.net.InetAddress;
  6. import java.io.IOException;
  7.  
  8. public class MulticastServer extends Thread{
  9. private String MULTICAST_ADDRESS = "224.3.2.1";
  10. private int PORT = 4321;
  11. private BaseDados baseDados;
  12. private String multicastNumber= "1";
  13.  
  14. public MulticastServer(BaseDados baseDados){
  15. super("Server " + (long) (Math.random() * 1000));
  16. this.baseDados= baseDados;
  17. UploadDownloadControler tcpServer= new UploadDownloadControler();
  18. tcpServer.start();
  19. }
  20.  
  21. public void run() {
  22. MulticastSocket socket = null;
  23. System.out.println("Multicast Server running...");
  24. while(true){
  25. try {
  26. socket = new MulticastSocket(PORT);
  27. InetAddress group = InetAddress.getByName(MULTICAST_ADDRESS);
  28. socket.joinGroup(group);
  29.  
  30. byte[] buffer = new byte[256];
  31. DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
  32. socket.receive(packet);
  33.  
  34.  
  35. String message = new String(packet.getData(), 0, packet.getLength());
  36. System.out.println("Recebeu o pacote: "+message);
  37. String[] type= message.split("[\\;|]");
  38. String[] multicastNumber= type[0].split("[,]");
  39.  
  40. if(multicastNumber[0].equals(this.multicastNumber)){
  41. boolean aprovado;
  42. String username;
  43. String dataBaseData;
  44. String password;
  45.  
  46. switch(type[1]){
  47. case "login":
  48. username= type[3];
  49. password= type[5];
  50. dataBaseData= baseDados.verificaUsernamePassword(username,password);
  51. if(!dataBaseData.equals("")) message= username+"|status;logged|on;"+dataBaseData;
  52. else
  53. message= username+"|status;logged|off";
  54. break;
  55. case "register":
  56. username= type[2];
  57. password= type[5];
  58. aprovado= baseDados.adicionaUtilizador(username,password);
  59. break;
  60. case "partial search artist":
  61. username= type[5];
  62. dataBaseData= baseDados.getPartialSearchArtist(type[3]);
  63. if(dataBaseData.equals("")) message= username+"|answer;message|Artist name doesn't exist";
  64. else message= username+ "|partial search artist answer;artist name|"+type[3]+";separate message|"+dataBaseData;
  65. break;
  66. case "partial search album":
  67. username= type[5];
  68. dataBaseData= baseDados.getPartialSearchAlbum(type[3]);
  69. if(dataBaseData.equals("")) message= username+"|answer;message|Album name doesn't exist";
  70. else
  71. message= username+ "|partial search album answer;album name|"+type[3]+";separate message|"+dataBaseData;
  72. break;
  73. case "partial search genre":
  74. username= type[5];
  75. dataBaseData= baseDados.getPartialSearchGenre(type[3]);
  76. if(dataBaseData.equals("")) message= username+"|answer;message|Genre doesn't exist";
  77. else
  78. message= username+ "|partial search answer;message|"+dataBaseData;
  79. break;
  80. case "search music":
  81. username= type[7];
  82. dataBaseData= baseDados.searchSong(type[3],"","","",type[5]);
  83. if(dataBaseData.equals(""))
  84. message= username+"|answer;message|Song name doesn't exist";
  85. else
  86. message= username+"|answer;message|"+dataBaseData;
  87. break;
  88. case "search music by album":
  89. username= type[9];
  90. dataBaseData= baseDados.searchSong(type[5],type[3],"","",type[7]);
  91. if(dataBaseData.equals(""))
  92. message= username+"|answer;message|Song name doesn't exist";
  93. else
  94. message= username+"|answer;message|"+dataBaseData;
  95. break;
  96. case "search music by artist":
  97. username= type[9];
  98. dataBaseData= baseDados.searchSong(type[5],"",type[3],"",type[7]);
  99. if(dataBaseData.equals(""))
  100. message= username+"|answer;message|Song name doesn't exist";
  101. else
  102. message= username+"|answer;message|"+dataBaseData;
  103. break;
  104. //searchSong(String songName, String albumName, String artistName, String genre, String option);
  105. case "details album":
  106. username= type[9];
  107. switch (type[3]) {
  108. case "description":
  109. dataBaseData= baseDados.getDescriptionAlbum(type[5],type[7]);
  110. if(dataBaseData.equals(""))
  111. message= username+"|answer;message|The album doesn't exist";
  112. else
  113. message= username+"|answer;separate message|"+dataBaseData;
  114. break;
  115. case "list of songs":
  116. dataBaseData= baseDados.getSongListAlbum(type[5], type[7]);
  117. if(dataBaseData.equals(""))
  118. message= username+"|answer;message|The album doesn't exist";
  119. else
  120. message= username+"|answer;separate message|"+dataBaseData;
  121. break;
  122. case "reviews":
  123. dataBaseData =baseDados.getReviewsAlbum(type[5],type[7]);
  124. if(dataBaseData.equals(""))
  125. message= username+"|answer;message|The album doesn't exist";
  126. else
  127. message= username+"|answer;message|"+dataBaseData;
  128. break;
  129. default:
  130. break;
  131. }
  132. break;
  133. case "details artist":
  134. username= type[5];
  135. dataBaseData= baseDados.getArtistData(type[3]);
  136. if(dataBaseData.equals(""))
  137. message= username+"|answer;message|The artist doesn't exist";
  138. else
  139. message= username+"|answer;message|"+dataBaseData;
  140.  
  141. break;
  142. case "review":
  143. username= type[9];
  144. aprovado=baseDados.writeReview(type[3],type[5],type[7]);
  145. if(aprovado)
  146. message= username+"|discard;";
  147. else
  148. message= username+"|answer;message|Album name doesn't exist";
  149. break;
  150. case "change to editor":
  151. String newEditorUsername= type[3];
  152. username= type[5];
  153. dataBaseData=baseDados.changeToEditor(type[3]);
  154. if(dataBaseData.equals(""))
  155. message=username+"|discard;";
  156. else if(dataBaseData.equals("error"))
  157. message= username+"|answer;message|Username doesn't exist";
  158. else
  159. message= username+"|notification;send to|"+newEditorUsername+";message|"+dataBaseData;
  160. break;
  161. case "insert artist":
  162. username= type[9];
  163. aprovado= baseDados.insertArtist(username, type[3],type[5],type [7]);
  164. if(aprovado) message=username +"|answer;message|Artist added";
  165. else message= username +"|answer;message|Artist already exists";
  166. break;
  167.  
  168. case "insert album":
  169. username= type[13];
  170. aprovado= baseDados.insertAlbum(username,type[3], type[5],type[7],type[9],type[11]);
  171. if(aprovado) message=username +"|answer;message|Album added";
  172. else message= username +"|answer;message|Album already exists";
  173. break;
  174.  
  175. case "insert song":
  176. username= type[15];
  177. aprovado= baseDados.insertSong(username,type[3], type[5],type[7],type[9],type[11],type[13]);
  178. if(aprovado) message=username +"|answer;message|Song added";
  179. else message= username +"|answer;message|Song already exists";
  180. break;
  181. case "change artist":
  182. username= type[9];
  183. dataBaseData= baseDados.changeArtist(username,type[3],type[5],type[7]);
  184. if(dataBaseData.equals("")){
  185. message=username+"|answer;message|Artist name doesn't exist";
  186. }
  187. else
  188. message=username+"|notification;"+dataBaseData;
  189. break;
  190. case "change album":
  191. username= type[11];
  192. dataBaseData= baseDados.changeAlbum(username,type[3],type[5],type[7],type[9]);
  193. if(dataBaseData.equals("")){
  194. message=username+"|answer;message|Artist/Album name doesn't exist";
  195. }
  196. else
  197. message=username+"|notification;"+dataBaseData;
  198. break;
  199. case "change song":
  200. username= type[13];
  201. dataBaseData= baseDados.changeSong(username,type[3],type[5],type[7],type[9],type[11]);
  202. if(dataBaseData.equals("")){
  203. message=username+"|answer;message|Artist/Album/Song name doesn't exist";
  204. }
  205. else
  206. message=username+"|notification;"+dataBaseData;
  207. break;
  208. case "remove artist":
  209. username= type[5];
  210. aprovado= baseDados.removeArtist(type[3]);
  211. if(aprovado) message= username+"";
  212. else message= username+"";
  213. break;
  214. case "remove album":
  215. username= type[7];
  216. aprovado= baseDados.removeAlbum(type[3], type[5]);
  217. if(aprovado) message= username+"";
  218. else message= username+"";
  219. break;
  220. case "remove song":
  221. username= type[9];
  222. aprovado= baseDados.removeSong(type[3], type[5],type[7]);
  223. if(aprovado) message= username+"";
  224. else message= username+"";
  225. break;
  226.  
  227. default:
  228. continue;
  229. }
  230.  
  231. buffer = message.getBytes();
  232. socket.leaveGroup(group);
  233. group = InetAddress.getByName(MULTICAST_ADDRESS);
  234. packet = new DatagramPacket(buffer, buffer.length, group, PORT);
  235. socket.send(packet);
  236. System.out.println("enviou-> "+message);
  237. }
  238.  
  239. } catch (IOException e) {
  240. e.printStackTrace();
  241. } finally {
  242. socket.close();
  243. }
  244. }
  245. }
  246. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement