| 
														
															@@ -1,8 +1,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 package com.company; 
														 | 
														
														 | 
														
															 package com.company; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import java.io.IOException; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import java.io.InputStream; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import java.io.OutputStream; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import javax.management.Attribute; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import java.io.*; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.net.Socket; 
														 | 
														
														 | 
														
															 import java.net.Socket; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.nio.charset.StandardCharsets; 
														 | 
														
														 | 
														
															 import java.nio.charset.StandardCharsets; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.util.List; 
														 | 
														
														 | 
														
															 import java.util.List; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -10,8 +9,8 @@ import java.util.Scanner; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 public class Client extends Thread { 
														 | 
														
														 | 
														
															 public class Client extends Thread { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private Socket socket; 
														 | 
														
														 | 
														
															     private Socket socket; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    private InputStream inputStream; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    private OutputStream outputStream; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private ObjectInputStream inputStream; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private ObjectOutputStream outputStream; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     // Список всех подключенных слиентов 
														 | 
														
														 | 
														
															     // Список всех подключенных слиентов 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private List<Client> clientList; 
														 | 
														
														 | 
														
															     private List<Client> clientList; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -21,30 +20,37 @@ public class Client extends Thread { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         this.socket = socket; 
														 | 
														
														 | 
														
															         this.socket = socket; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         this.clientList = clientList; 
														 | 
														
														 | 
														
															         this.clientList = clientList; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        inputStream = socket.getInputStream(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        outputStream = socket.getOutputStream(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        inputStream = new ObjectInputStream(socket.getInputStream()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        outputStream = new ObjectOutputStream(socket.getOutputStream()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @Override 
														 | 
														
														 | 
														
															     @Override 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     public void run() { 
														 | 
														
														 | 
														
															     public void run() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-       byte []buffer = new byte[READ_BUFFER_SIZE]; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															        while (!isInterrupted()) { 
														 | 
														
														 | 
														
															        while (!isInterrupted()) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															            try { 
														 | 
														
														 | 
														
															            try { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-               inputStream.read(buffer); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+               Transport t = (Transport) inputStream.readObject(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															                for (Client client : clientList) { 
														 | 
														
														 | 
														
															                for (Client client : clientList) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                   if (client != this) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                       client.outputStream.write(buffer); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                   if (client.socket != this.socket) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                       client.outputStream.writeObject(t); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                       client.outputStream.flush(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                    } 
														 | 
														
														 | 
														
															                    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                } 
														 | 
														
														 | 
														
															                } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-               System.out.print("Клиент " + socket.getLocalAddress().getHostAddress() + " "); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-               System.out.println(new String(buffer, StandardCharsets.UTF_8)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+               System.out.print("\033[1;31m\033[40m " + t.Name + ": \u001B[0m "); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+               System.out.println(t.Message); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															            } catch (IOException exception) { 
														 | 
														
														 | 
														
															            } catch (IOException exception) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-               System.out.println("Не смог прочитать данные клиента " + socket.getLocalAddress().getHostAddress()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+               System.out.println(exception.getMessage()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+               clientList.remove(this); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+               break; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+           } catch (ClassNotFoundException exception) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+               System.out.print("Не смог прочитать данные клиента " + socket.getRemoteSocketAddress().toString() + ": "); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+               System.out.println(exception.getMessage()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+               clientList.remove(this); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+               break; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															            } 
														 | 
														
														 | 
														
															            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															        } 
														 | 
														
														 | 
														
															        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 |