import java.io.*;
import java.net.*;
import java.util.ArrayList;
import java.util.Stack;
public class Room {
public static void Start(){
ServerSocket serversocket;
Socket socket;
ArrayList<Socket> users = new ArrayList<Socket>();
Users userfunction = new Users();
Stack<String> outputMessage = new Stack<String>();
try{
System.out.println();
// Created a socket in which clients can connect to.
serversocket = new ServerSocket(7776);
// Waits for a client to connect to the server //
while(true){
socket = serversocket.accept();
// Adds User onto ArrayList
users.add(socket);
userfunction.addStream(socket);
// Time to Receive messages from clients
for(int x = 0; x < users.size(); x++){
outputMessage.push(userfunction.getMessage(x));
}
// Time to send all new messages to clients
if(!outputMessage.empty()){
String out = outputMessage.pop();
userfunction.sendMessageALL(out);
}
}
}catch(IOException e){
System.out.println(e);
}
}
public static void main(String[] args){
Start();
}
}
import java.net.*;
import java.io.*;
import java.util.ArrayList;
public class Users {
ArrayList<BufferedReader> recieveAL = new ArrayList<BufferedReader>();
ArrayList<PrintWriter> sendAL = new ArrayList<PrintWriter>();
public void addStream(Socket socket){
BufferedReader br;
PrintWriter pw;
try{
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
pw = new PrintWriter(socket.getOutputStream(), true);
recieveAL.add(br);
sendAL.add(pw);
}catch(IOException e){
e.printStackTrace();
}
}
// Recieve a message from someone.
public String getMessage(int x){
BufferedReader bf = recieveAL.get(x);
try{
return bf.readLine();
}catch(IOException e){
System.out.println(e);
}
return null;
}
// send a message to everyone
public void sendMessageALL(String send){
for(int x = 0; x <= sendAL.size(); x++){
PrintWriter pw = sendAL.get(x);
pw.println(send);
}
}
// Send a message to one person
public void sendMessage(String send,int x){
PrintWriter pw = sendAL.get(x);
pw.println(send);
}
}
<img class="UMSRatingIcon" id="ums_img_tooltip" />






