Guest User

Untitled

a guest
Nov 22nd, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.78 KB | None | 0 0
  1. import java.io.*;
  2. import java.net.Socket;
  3. import java.util.ArrayList;
  4. import java.util.Collections;
  5. import java.util.List;
  6.  
  7. public class Server extends Thread{
  8. private PrintWriter printWriter;
  9. private BufferedReader bufferedReader;
  10. private Socket socket;
  11. private static List<MyClient>clients = Collections.synchronizedList(new ArrayList<>());
  12. private MyClient client;
  13.  
  14. public Server(Socket socket) {
  15. this.socket = socket;
  16. try {
  17. bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  18. printWriter = new PrintWriter(socket.getOutputStream(), true);
  19. } catch (IOException e) {
  20. e.printStackTrace();
  21. }
  22. }
  23. @Override
  24. public void run() {
  25. try {
  26. whileChating();
  27. } catch (IOException e) {
  28. e.printStackTrace();
  29. }finally {
  30. closeConnection();
  31. }
  32. }
  33. private void whileChating() throws IOException {
  34. String message = "SERVER msg: you are connecting " + socket.getInetAddress() + " : " + socket.getPort();
  35. printWriter.println(message + "rn");
  36. do {
  37. message = bufferedReader.readLine();
  38. printWriter.println("Сообщение получил");
  39. printWriter.println(message);
  40. System.out.println(message);
  41. }while (!message.equals("EXIT"));
  42. }
  43. private void closeConnection(){
  44. System.out.println("Закрыите соединения");
  45. printWriter.println("Пользователь отключился rn");
  46. try {
  47. printWriter.close();
  48. bufferedReader.close();
  49. socket.close();
  50. } catch (IOException e) {
  51. e.printStackTrace();
  52. }
  53. }
  54. }
  55.  
  56. import java.io.IOException;
  57. import java.net.ServerSocket;
  58. import java.net.Socket;
  59.  
  60. public class ServerRun {
  61. public static void main(String[] args) {
  62. try (ServerSocket serverSocket = new ServerSocket(5656, 25)) {
  63. while (true){
  64. Socket socket = serverSocket.accept();
  65. new Server(socket).start();
  66. }
  67. }catch (IOException e){
  68. e.printStackTrace();
  69. }
  70. }
  71. }
  72.  
  73. import javax.swing.*;
  74. import java.awt.*;
  75. import java.awt.event.ActionEvent;
  76. import java.awt.event.ActionListener;
  77. import java.io.*;
  78. import java.net.InetSocketAddress;
  79. import java.net.Socket;
  80.  
  81. public class MyClient extends JFrame {
  82.  
  83. private JTextField userInputText;
  84. private JTextArea chatWindow;
  85. private PrintWriter printWriter;
  86. private BufferedReader bufferedReader;
  87. private Socket socket;
  88.  
  89. public MyClient(){
  90. super("Client");
  91. userInputText = new JTextField();
  92. userInputText.addActionListener(new ActionListener() {
  93. @Override
  94. public void actionPerformed(ActionEvent e) {
  95. sendMessage(e.getActionCommand());
  96. userInputText.setText("");
  97. }
  98. });
  99. add(userInputText, BorderLayout.NORTH);
  100. chatWindow = new JTextArea();
  101. chatWindow.setEditable(false);
  102. add(new JScrollPane(chatWindow), BorderLayout.CENTER);
  103. setSize(300, 600);
  104. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  105. setVisible(true);
  106. startClient();
  107. }
  108. private void startClient() {
  109. try {
  110. connectServer();
  111. whileChating();
  112. }catch (EOFException e){
  113. showMessage("Клиент оборвал соединение");
  114. }catch (IOException e){
  115. e.printStackTrace();
  116. }finally {
  117. closeConnection();
  118. }
  119. }
  120. private void connectServer() throws IOException {
  121. showMessage("Connecting...");
  122. socket = new Socket();
  123. socket.connect(new InetSocketAddress("127.0.0.1", 5656), 2000);
  124. printWriter = new PrintWriter(socket.getOutputStream(), true);
  125. bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  126. showMessage("Connection ready");
  127. }
  128. private void whileChating() throws IOException {
  129. String message;
  130. do {
  131. message = bufferedReader.readLine();
  132. showMessage("n" + message);
  133. }while (!message.equals("EXIT"));
  134. }
  135. private void closeConnection(){
  136. showMessage("nClose connection...");
  137. try {
  138. printWriter.close();
  139. bufferedReader.close();
  140. socket.close();
  141. } catch (IOException e) {
  142. e.getMessage();
  143. }
  144. }
  145. public void sendMessage(String message){
  146. printWriter.println(message);
  147. }
  148. private void showMessage(String msg){
  149. SwingUtilities.invokeLater(new Runnable() {
  150. @Override
  151. public void run() {
  152. chatWindow.append(msg);
  153. }
  154. });
  155. }
  156. }
Add Comment
Please, Sign In to add comment