import java.io.*;
import java.net.*;
import java.util.*;
public class VerySimpleChatServer {
ArrayList clientOutputStreams;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new VerySimpleChatServer().go();
}
public class ClientHandler implements Runnable{
BufferedReader reader;
Socket sock;
public ClientHandler(Socket clientSocket){
try{
sock = clientSocket;
InputStreamReader StreamReader = new InputStreamReader(sock.getInputStream());
reader = new BufferedReader(StreamReader);
}
catch(Exception ex){
ex.printStackTrace();
}
}
@Override
public void run() {
// TODO Auto-generated method stub
String message;
try{
while((message=reader.readLine())!=null){
System.out.println("read "+message);
tellEveryone(message);
}
}
catch(Exception e){
e.printStackTrace();
}
}
}
public void go(){
clientOutputStreams = new ArrayList();
try{
ServerSocket serverSock = new ServerSocket(5000);
while(true){
Socket clientSocket = serverSock.accept();
PrintWriter writer = new PrintWriter(clientSocket.getOutputStream());
clientOutputStreams.add(writer);
Thread t = new Thread(new ClientHandler(clientSocket));
t.start();
System.out.println("got a connection");
}
}
catch(Exception e){
e.printStackTrace();
}
}
public void tellEveryone(String message){
Iterator it = clientOutputStreams.iterator();
while(it.hasNext()){
try{
PrintWriter writer = (PrintWriter) it.next();
writer.println(message);
System.out.println("writing");
writer.flush();
}
catch(Exception e){
e.printStackTrace();
}
}
}
}
import java.net.*;
import java.util.*;
public class VerySimpleChatServer {
ArrayList clientOutputStreams;
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new VerySimpleChatServer().go();
}
public class ClientHandler implements Runnable{
BufferedReader reader;
Socket sock;
public ClientHandler(Socket clientSocket){
try{
sock = clientSocket;
InputStreamReader StreamReader = new InputStreamReader(sock.getInputStream());
reader = new BufferedReader(StreamReader);
}
catch(Exception ex){
ex.printStackTrace();
}
}
@Override
public void run() {
// TODO Auto-generated method stub
String message;
try{
while((message=reader.readLine())!=null){
System.out.println("read "+message);
tellEveryone(message);
}
}
catch(Exception e){
e.printStackTrace();
}
}
}
public void go(){
clientOutputStreams = new ArrayList();
try{
ServerSocket serverSock = new ServerSocket(5000);
while(true){
Socket clientSocket = serverSock.accept();
PrintWriter writer = new PrintWriter(clientSocket.getOutputStream());
clientOutputStreams.add(writer);
Thread t = new Thread(new ClientHandler(clientSocket));
t.start();
System.out.println("got a connection");
}
}
catch(Exception e){
e.printStackTrace();
}
}
public void tellEveryone(String message){
Iterator it = clientOutputStreams.iterator();
while(it.hasNext()){
try{
PrintWriter writer = (PrintWriter) it.next();
writer.println(message);
System.out.println("writing");
writer.flush();
}
catch(Exception e){
e.printStackTrace();
}
}
}
}
No comments:
Post a Comment