package pl.helion.j2mepp.serwerczata;

import java.io.*;
import java.net.*;
import java.util.*;

public class MenadzerGniazdek
{
 public void uruchomSerwer() throws Exception
 {
  server = new ServerSocket(34567);
  gniazda = new Vector<Watek>();
  while (czywykonywac)
  {
   Socket gniazdko = server.accept();
   Watek watek = new Watek(gniazdko,this);
   gniazda.add(watek);
   watek.start();
  }
 }
 public synchronized void wyslijWiadomosc(String login, String tekst)
 {
  try
  {
   Iterator<Watek> i = gniazda.iterator();
   while (i.hasNext())
   {
    Watek w = i.next();
    if (w.getLogin().equals(login))
    {
     PrintStream ps = new PrintStream(w.getGniazdo().getOutputStream(),true);
     ps.println(tekst);
    }
   }
  }
  catch (Exception e){}
 }
 public synchronized void wyslijWiadomosc(String tekst)
 {
  try
  {
   Iterator<Watek> i = gniazda.iterator();
   while (i.hasNext())
   {
    Socket sock = i.next().getGniazdo();
    PrintStream strumien = new PrintStream(sock.getOutputStream(),true);
    strumien.println(tekst);
   }
  }
  catch (Exception e){}
 }
 public synchronized void usunWatek(Watek watek)
 {
  gniazda.remove(watek);
 }
 public synchronized boolean sprawdzLogin(String login)
 {
  Iterator<Watek> i = gniazda.iterator();
  while (i.hasNext())
  {
   Watek w = i.next();
   if (w.getLogin()!=null && w.getLogin().equals(login)) return false;
  }
  return true;
 }
 private Vector<Watek> gniazda;
 private ServerSocket server;
 private boolean czywykonywac = true;
}