Guest User

Untitled

a guest
Mar 27th, 2018
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.66 KB | None | 0 0
  1. public class MainSocket {
  2.  
  3. public static void main(String[] args) throws IOException {
  4. HashMap<String,SecondSocket> hashMap = new HashMap();
  5.  
  6. ServerSocket serverSocket = new ServerSocket(5555);
  7. BufferedReader bufferedReader = null;
  8. PrintWriter printWriter = null;
  9. String clientKey = null;
  10. while(true){
  11. System.out.println("Ожидание нового подключения...");
  12. Socket socket = serverSocket.accept();
  13. System.out.println("Старт");
  14. try
  15. {
  16. printWriter = new PrintWriter(socket.getOutputStream(),true);
  17. bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream(), Charset.forName("cp1251")));
  18. clientKey = bufferedReader.readLine();
  19.  
  20. System.out.println("key ot klienta"+clientKey);
  21.  
  22. }catch (Exception e){}
  23. //Когда есть новое подключение запускаю новый поток для работы с ним
  24.  
  25. if(hashMap.size()!=0){
  26. if(hashMap.get(clientKey)!=null){
  27. SecondSocket mySocketThread = hashMap.get(clientKey);
  28. mySocketThread.setSocket(socket);
  29. mySocketThread.setBufferedReader(bufferedReader);
  30. mySocketThread.setPrintWriter(printWriter);
  31. printWriter.println("ваш поток найден");
  32. }else{
  33. printWriter.println("для вас создан новый поток");
  34. SecondSocket mySocketThread = new SecondSocket(socket,bufferedReader,printWriter);
  35. hashMap.put(clientKey,mySocketThread);
  36. mySocketThread.start();
  37. }
  38. }else{
  39. printWriter.println("для вас создан новый поток");
  40. SecondSocket mySocketThread = new SecondSocket(socket,bufferedReader,printWriter);
  41. hashMap.put(clientKey, mySocketThread);
  42. mySocketThread.start();
  43. }
  44. System.out.println("OBSHEE CHISLO POTOKOV : "+hashMap.size());
  45. }
  46.  
  47. }
  48. }
  49.  
  50. class SecondSocket extends Thread{
  51. String connectionUrl = "jdbc:sqlserver://127.0.0.1;databaseName=mydb;user=myname;password=pass";
  52.  
  53. Connection connection = null;
  54. CallableStatement cstmt = null;
  55. String userId = null;
  56. String xml = null;
  57. Document document = null;
  58. Elements xmlTag = null;
  59. Element e = null;
  60. BufferedReader bufferedReader = null;
  61. PrintWriter printWriter = null;
  62. Socket socket = null;
  63. public SecondSocket(Socket socket,BufferedReader bufferedReader,PrintWriter printWriter){
  64. this.socket = socket;
  65. this.bufferedReader = bufferedReader;
  66. this.printWriter = printWriter;
  67. try {
  68. connection = DriverManager.getConnection(connectionUrl);
  69. }catch(Exception e){
  70. try {
  71. connection.rollback();
  72. } catch (SQLException e1) {
  73. }
  74. }
  75. try {
  76. xml = bufferedReader.readLine();
  77. System.out.println(xml);
  78. } catch (IOException e1) {
  79. }
  80. try {
  81. cstmt = connection.prepareCall("{call xml_parser(?,?)}");
  82. cstmt.setString(1, xml);
  83. cstmt.registerOutParameter(2, Types.VARCHAR);
  84. cstmt.execute();
  85. document = Jsoup.parse(cstmt.getString(2));
  86. xmlTag = document.getElementsByTag("codeid");
  87. try{
  88. e = xmlTag.get(0);
  89. userId = e.text();
  90. }catch (Exception e){}
  91.  
  92. } catch (Exception e) {
  93. }
  94. }
  95. @Override
  96. public void run() {
  97. while(true){
  98. while(socket!=null){
  99. if(userId!=null){
  100. try {
  101. cstmt = connection.prepareCall("{call xml_parser_new(?,?)}");
  102. cstmt.setInt(1, Integer.valueOf(userId));
  103. cstmt.registerOutParameter(2, Types.INTEGER);
  104. cstmt.execute();
  105. printWriter.println(cstmt.getString(2));
  106. } catch (Exception e) {
  107. e.printStackTrace();
  108. }
  109. try{
  110. while ((xml = bufferedReader.readLine()) != null) {
  111. System.out.println(xml);
  112. cstmt.execute();
  113. if (cstmt.getString(2).equals("1")) {
  114. printWriter.println(cstmt.getString(2));
  115. }else {
  116. printWriter.println("0");
  117. }
  118. }
  119. }catch(IOException e){
  120. } catch (SQLException e1) {
  121. } finally {
  122. try {
  123. cstmt.close();
  124. socket.close();
  125. socket = null;
  126. xml = "";
  127. e = null;
  128. xmlTag = null;
  129. document = null;
  130. bufferedReader.close();
  131. bufferedReader = null;
  132. printWriter.close();
  133. printWriter = null;
  134. System.out.println("сработал finally block");
  135. } catch (SQLException e1) {
  136. } catch (IOException e1) {
  137. }
  138. }
  139. }
  140. System.out.println("сработал конечный while");
  141. }
  142. System.out.println("Работает while true");
  143. try {
  144. Thread.sleep(1000);
  145. } catch (InterruptedException e1) {
  146. }
  147. }
  148.  
  149. }
  150.  
  151. public BufferedReader getBufferedReader() {
  152. return bufferedReader;
  153. }
  154.  
  155. public void setBufferedReader(BufferedReader bufferedReader) {
  156. this.bufferedReader = bufferedReader;
  157. }
  158.  
  159. public PrintWriter getPrintWriter() {
  160. return printWriter;
  161. }
  162.  
  163. public void setPrintWriter(PrintWriter printWriter) {
  164. this.printWriter = printWriter;
  165. }
  166.  
  167. public Socket getSocket() {
  168. return socket;
  169. }
  170.  
  171. public void setSocket(Socket socket) {
  172. this.socket = socket;
  173. }
  174.  
  175. @Override
  176. public boolean equals(Object o) {
  177. if (this == o) return true;
  178. if (!(o instanceof SecondSocket)) return false;
  179.  
  180. SecondSocket that = (SecondSocket) o;
  181.  
  182. if (bufferedReader != null ? !bufferedReader.equals(that.bufferedReader) : that.bufferedReader != null)
  183. return false;
  184. if (connection != null ? !connection.equals(that.connection) : that.connection != null) return false;
  185. if (connectionUrl != null ? !connectionUrl.equals(that.connectionUrl) : that.connectionUrl != null)
  186. return false;
  187. if (cstmt != null ? !cstmt.equals(that.cstmt) : that.cstmt != null) return false;
  188. if (document != null ? !document.equals(that.document) : that.document != null) return false;
  189. if (e != null ? !e.equals(that.e) : that.e != null) return false;
  190. if (xml != null ? !xml.equals(that.xml) : that.xml != null) return false;
  191. if (printWriter != null ? !printWriter.equals(that.printWriter) : that.printWriter != null) return false;
  192. if (socket != null ? !socket.equals(that.socket) : that.socket != null) return false;
  193. if (userId != null ? !userId.equals(that.userId) : that.userId != null) return false;
  194. if (xmlTag != null ? !xmlTag.equals(that.xmlTag) : that.xmlTag != null) return false;
  195.  
  196. return true;
  197. }
  198.  
  199. @Override
  200. public int hashCode() {
  201. int result = connectionUrl != null ? connectionUrl.hashCode() : 0;
  202. result = 31 * result + (connection != null ? connection.hashCode() : 0);
  203. result = 31 * result + (cstmt != null ? cstmt.hashCode() : 0);
  204. result = 31 * result + (userId != null ? userId.hashCode() : 0);
  205. result = 31 * result + (xml != null ? xml.hashCode() : 0);
  206. result = 31 * result + (document != null ? document.hashCode() : 0);
  207. result = 31 * result + (xmlTag != null ? xmlTag.hashCode() : 0);
  208. result = 31 * result + (e != null ? e.hashCode() : 0);
  209. result = 31 * result + (bufferedReader != null ? bufferedReader.hashCode() : 0);
  210. result = 31 * result + (printWriter != null ? printWriter.hashCode() : 0);
  211. result = 31 * result + (socket != null ? socket.hashCode() : 0);
  212. return result;
  213. }
  214. }
Add Comment
Please, Sign In to add comment