|
@@ -0,0 +1,54 @@
|
|
|
+package com.company;
|
|
|
+
|
|
|
+import java.io.IOException;
|
|
|
+import java.io.InputStream;
|
|
|
+import java.io.OutputStream;
|
|
|
+import java.net.Socket;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+public class Client extends Thread {
|
|
|
+
|
|
|
+ private Socket socket;
|
|
|
+ private List<Client> clientList;
|
|
|
+
|
|
|
+ public Client(Socket socket, List<Client> clientList) {
|
|
|
+ this.socket = socket;
|
|
|
+ this.clientList = clientList;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+
|
|
|
+ byte[] data = new byte[2048];
|
|
|
+
|
|
|
+ while (!isInterrupted()) {
|
|
|
+
|
|
|
+ try {
|
|
|
+ InputStream is = socket.getInputStream();
|
|
|
+
|
|
|
+ is.read(data);
|
|
|
+
|
|
|
+ System.out.println(new String(data));
|
|
|
+
|
|
|
+ for (Client client : clientList) {
|
|
|
+
|
|
|
+
|
|
|
+ if (client.socket != this.socket) {
|
|
|
+ OutputStream os = client.socket.getOutputStream();
|
|
|
+
|
|
|
+ os.write(data);
|
|
|
+ os.flush();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (IOException exception) {
|
|
|
+
|
|
|
+
|
|
|
+ System.out.println(socket.getInetAddress().getHostAddress() + " disconnected");
|
|
|
+
|
|
|
+ clientList.remove(this);
|
|
|
+ interrupt();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|