Advertisement
Guest User

Untitled

a guest
Feb 28th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.77 KB | None | 0 0
  1. package myWhats;
  2.  
  3. import java.io.BufferedWriter;
  4. import java.io.File;
  5. import java.io.FileOutputStream;
  6. import java.io.FileWriter;
  7. import java.io.IOException;
  8. import java.io.ObjectInputStream;
  9. import java.io.ObjectOutputStream;
  10. import java.io.OutputStreamWriter;
  11. import java.io.PrintWriter;
  12. import java.io.Writer;
  13. import java.net.ServerSocket;
  14. import java.net.Socket;
  15. import java.util.Scanner;
  16.  
  17. //Servidor do servi�o myWhatsServer
  18.  
  19. public class myWhatsServer{
  20.  
  21. public static void main(String[] args) {
  22. System.out.println("servidor: main");
  23. myWhatsServer server = new myWhatsServer();
  24. server.startServer();
  25. }
  26.  
  27. public void startServer (){
  28. ServerSocket sSoc = null;
  29.  
  30. try {
  31. sSoc = new ServerSocket(23456);
  32. } catch (IOException e) {
  33. System.err.println(e.getMessage());
  34. System.exit(-1);
  35. }
  36.  
  37. while(true) {
  38. try {
  39. Socket inSoc = sSoc.accept(); //listen
  40. ServerThread newServerThread = new ServerThread(inSoc);
  41. newServerThread.start(); //inicializaçao da thread
  42. }
  43. catch (IOException e) {
  44. try {
  45. sSoc.close();
  46. break;
  47. } catch (IOException e1) {
  48. // TODO Auto-generated catch block
  49. e1.printStackTrace();
  50. }
  51. e.printStackTrace();
  52. }
  53.  
  54. }
  55. //sSoc.close();
  56. }
  57.  
  58.  
  59. //Threads utilizadas para comunica��o com os clientes
  60. class ServerThread extends Thread {
  61.  
  62. private Socket socket = null;
  63.  
  64. ServerThread(Socket inSoc) {
  65. socket = inSoc;
  66. System.out.println("thread do server para cada cliente");
  67. }
  68.  
  69. public void run(){
  70. try {
  71. ObjectOutputStream outStream = new ObjectOutputStream(socket.getOutputStream());
  72. ObjectInputStream inStream = new ObjectInputStream(socket.getInputStream());
  73.  
  74. String recebido = null;
  75. String user = null;
  76. String passwd = null;
  77. String[] resto =null;
  78. File log = new File ("passwords.txt");
  79. String proxima = null;
  80. Boolean bool = false;
  81.  
  82.  
  83.  
  84.  
  85. try {
  86. recebido = (String) inStream.readObject();
  87. int it = 0;
  88. resto = recebido.split(" ");
  89. user= resto[0];
  90. passwd= resto[1];
  91. System.out.println("thread: depois de receber a password e o user");
  92. if(!log.exists()){
  93. System.out.println("novo ficheiro de pass");
  94. log.createNewFile();
  95. }
  96. PrintWriter out = new PrintWriter(new FileWriter(log, true));
  97. Scanner sc = new Scanner (log);
  98. if(sc.hasNextLine()){
  99. proxima = sc.next();
  100. while(proxima != null){
  101. String[] userPass = proxima.split(":",2);
  102. if(userPass[0].equals(user)){
  103. if(userPass[1].equals(passwd)){
  104. System.out.println("Login Correcto");
  105. bool=true;
  106. break;
  107. }else{
  108. System.out.println("Password Incorrecta");
  109. outStream.writeObject(new Boolean(false));
  110. }
  111. }
  112. proxima= sc.nextLine();
  113. }
  114. }
  115. if(!bool){
  116. out.write(user+":"+ passwd + '\n');
  117. System.out.println("Novo User Registado");
  118. }
  119.  
  120. }catch (ClassNotFoundException e1) {
  121. e1.printStackTrace();
  122. }
  123.  
  124. switch (resto[2]){
  125. case "-m":
  126. break;
  127. case "-r":
  128. break;
  129. case "-a":
  130. break;
  131. case "-d":
  132. break;
  133. case "-f":
  134. break;
  135. default:
  136. break;
  137. }
  138.  
  139. //TODO: refazer
  140. //este c�digo apenas exemplifica a comunica��o entre o cliente e o servidor
  141. //n�o faz qualquer tipo de autentica��o
  142. if (user.length() != 0){
  143. outStream.writeObject(new Boolean(true));
  144. }
  145. else {
  146. outStream.writeObject(new Boolean(false));
  147. }
  148.  
  149. outStream.close();
  150. inStream.close();
  151.  
  152. socket.close();
  153.  
  154. } catch (IOException e) {
  155. e.printStackTrace();
  156. }
  157. }
  158. }
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement