You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package com.vertsys;
import java.io.*; import java.net.Socket;
public class ServerThread extends Server implements Runnable{
private Socket sock;
public ServerThread(Socket sock){ this.sock = sock; }
@Override public void run() { if (DEBUG_MODE) System.out.println("New connection --> New Thread started."); if(DEBUG_MODE) System.out.println("Send all received messages to new client..."); try { ObjectOutputStream toNewClient = new ObjectOutputStream(sock.getOutputStream()); toNewClient.writeObject(messages); } catch (IOException e) { e.printStackTrace(); } while(!sock.isClosed()){ System.out.println("Still running..."); this.addMessage(); } if(DEBUG_MODE) System.out.println("Socket closed --> Joining Thread..."); }
private void addMessage(){ String newMessage = ""; try { newMessage = readMessage(); } catch (IOException e) { e.printStackTrace(); } if (DEBUG_MODE) System.out.println("Add new Message..."); messages.add(newMessage); if(DEBUG_MODE) System.out.println(newMessage); String finalNewMessage = newMessage; clients.forEach(socket -> { DataOutputStream outgoing = null;
try { outgoing = new DataOutputStream(socket.getOutputStream()); outgoing.writeBytes(finalNewMessage + "\n"); } catch (IOException e) { e.printStackTrace(); }
}); } private String readMessage() throws IOException { BufferedReader incoming = new BufferedReader(new InputStreamReader(sock.getInputStream())); return incoming.readLine(); } }
|