Advertisement
Guest User

Untitled

a guest
Mar 12th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.00 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.DataOutputStream;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.net.Socket;
  6. import java.util.HashMap;
  7. import java.util.Iterator;
  8. import java.util.Map;
  9.  
  10. public class ServerThread extends Thread {
  11.  
  12. private Socket socket;
  13. private Map<String, String> accountInfo;
  14. SimpleProtocol p;
  15.  
  16. public ServerThread(Socket socket) {
  17. this.socket = socket;
  18. p = new SimpleProtocol();
  19. accountInfo = new HashMap<String, String>();
  20.  
  21. }
  22.  
  23. @Override
  24. public void run() {
  25. try {
  26. System.out.println("processing request");
  27. BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  28.  
  29. DataOutputStream out = new DataOutputStream(socket.getOutputStream());
  30.  
  31. out.writeBytes(p.createMessage("sign-up", "true", "welcome to server") + "\n");
  32. System.out.println("butts");
  33.  
  34. while (true) {
  35. String instring = in.readLine();
  36. if (instring != null && getType(instring).equals("sign-in")) {
  37. // while((instring=in.readLine())!= null){
  38. // System.out.print(instring);
  39. whichType(instring);
  40.  
  41. out.writeBytes(p.createMessage(getType(instring), signIn(instring), "please") + "\n");
  42. //break;
  43. // socket.close();
  44. } else {// wasnt in older version
  45. if (instring != null && getType(instring).equals("sign-up")) {
  46. // System.out.print(instring);
  47. whichType(instring);
  48.  
  49. out.writeBytes(p.createMessage(getType(instring), signUp(instring), "Wut") + "\n");
  50. //break;
  51. //socket.close();
  52. }
  53. }
  54. }
  55.  
  56.  
  57. } catch (IOException e) {
  58. e.printStackTrace();
  59. }
  60. }
  61.  
  62. public void whichType(String message) {
  63. String parts[] = p.decodeMessage(message);
  64. String type = parts[0];
  65. if (type.equals("sign-up")) {
  66. signUp(message);
  67. } else {
  68. if (type.equals("sign-in")) {
  69. signIn(message);
  70. } else {
  71. if (type.equals("get_message")) {
  72. getMessage(message);
  73. } else {
  74. if (type.equals("send-message")) {
  75. sendMessage();
  76. }
  77. }
  78. }
  79. }
  80. }
  81.  
  82. private String signUp(String info) {
  83. String parts[] = p.decodeMessage(info);
  84. String username = parts[1];
  85. String password = parts[2];
  86. if (!getAccount().containsKey(username) && username.length() >= 5 && username.length() <= 20
  87. && password.length() >= 5 && password.length() <= 32) {
  88.  
  89. accountInfo.put(username, password);
  90. return "true";
  91. // }
  92. // try {
  93. // //socket.close();
  94. // } catch (IOException e) {
  95. // // TODO Auto-generated catch block
  96. // e.printStackTrace();
  97. }else{
  98. if(getAccount().containsKey(username)){
  99. Iterator<String> keySetIterator = getAccount().keySet().iterator();
  100. while(keySetIterator.hasNext()){
  101. String key = keySetIterator.next();
  102. System.out.println("key: " + key + " value: " + accountInfo.get(key));
  103. }
  104.  
  105.  
  106. return "false";
  107.  
  108. }
  109. }// create restrictions for what is acceptable signup info
  110. return username;
  111. }
  112.  
  113. private String signIn(String info) {// was boolean
  114. // create restrictions or checks for existing account
  115. String parts[] = p.decodeMessage(info);
  116. String username = parts[1];
  117. String password = parts[2];
  118. if (getAccount().containsKey(username) && getAccount().containsValue(password)) {
  119. return "true";
  120.  
  121. } else {
  122.  
  123. System.out.println("Incorrect Username and/or Password");
  124.  
  125. // try {
  126. //
  127. // socket.close();
  128. // } catch (IOException e) {
  129. // // TODO Auto-generated catch block
  130. // e.printStackTrace();
  131. // }
  132.  
  133. }
  134. return "false";
  135.  
  136. }
  137.  
  138. private void getMessage(String info) {
  139. String parts[] = p.decodeMessage(info);
  140. String type = parts[0];
  141. String offset = parts[1];
  142. String username = parts[2];
  143. String timeStamp = parts[3];
  144. String message = parts[4];
  145.  
  146. }
  147.  
  148. private void sendMessage() {
  149.  
  150. }
  151.  
  152. public String getType(String input) {
  153. String parts[] = p.decodeMessage(input);
  154.  
  155. return parts[0];
  156. }
  157.  
  158. public Map<String, String> getAccount()
  159. {
  160. return this.accountInfo;
  161. }
  162.  
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement