Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package edu.lamk.tl.server;
- import java.io.DataInputStream;
- import java.io.DataOutputStream;
- import java.io.IOException;
- import java.net.Socket;
- import java.util.ArrayList;
- import java.util.Iterator;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- /**
- *
- * @author halmnik1
- */
- public class ChatHandler extends Thread{
- Socket socket;
- DataInputStream in = null;
- DataOutputStream out = null;
- String name;
- static protected final ArrayList<ChatHandler>chatters =
- new ArrayList<ChatHandler>();
- public ChatHandler(String name, Socket socket) throws IOException{
- this.name = name;
- this.socket = socket;
- in = new DataInputStream(socket.getInputStream());
- out = new DataOutputStream(socket.getOutputStream());
- }
- @Override
- public void run() {
- try{
- broadcast( name +" entered!");
- synchronized(chatters){
- chatters.add(this);
- }
- while(true){
- String msg = in.readUTF();
- broadcast(name + ": "+msg);
- }
- } catch(IOException ex){
- System.out.println("--Connection to user "+name+" is lost--");
- }
- }
- private void broadcast(String msg) {
- synchronized(chatters){
- Iterator<ChatHandler> iter = chatters.iterator();
- while(iter.hasNext()){
- ChatHandler handler = iter.next();
- try {
- handler.out.writeUTF(msg);
- handler.out.flush();
- } catch (IOException ex) {
- System.out.println("--Broadcast failed "+ handler.name);
- iter.remove();
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement