Simple Chat Server socket coding issues
So, I'm working on one of the projects from the Headfirst java book, which is to create a simple chat client and server. The client was a breeze, but the server is giving me issues. (Using Eclipse on Windows XP SP2)
Here is what I have :
Code:
import java.io.*;
import java.net.*;
import java.util.*;
public class SimpleChatServer {
ArrayList clientOutputStreams;
public class ClientHandler implements Runnable {
BufferedReader reader;
Socket sock;
public ClientHandler(Socket clientSocket){
try{
sock = clientSocket;
InputStreamReader isReader = new InputStreamReader(sock.getInputStream());
}catch(Exception ex) {ex.printStackTrace();}
}//close constructor
public void run() {
String message;
try{
while((message = reader.readLine()) != null){
System.out.println("read " + message);
tellEveryone(message);
}//close while
}catch(Exception ex){ex.printStackTrace();}
}//close run
}//close inner class
public static void main (String[] args){
new SimpleChatServer().go();
}
public void go() {
clientOutputStreams = new ArrayList();
try{
ServerSocket serverSock = new ServerSocket(5000);
while(true) {
Socket = clientSocket = serverSock.accept();
PrintWriter writer = new PrintWriter(clientSocket.getOuputStream());
clientOutputStreams.add(writer);
Thread t = new Thread(new ClientHandler(clientSocket));
t.start();
System.out.println("got a connection");
}
}catch(Exception ex){ex.printStackTrace();}
}//close go
public void tellEveryone(String message){
Iterator it = clientOutputStreams.iterator();
while(it.hasNext()){
try{
PrintWriter writer = (PrintWriter) it.next();
writer.flush();
}catch(Exception ex){ex.printStackTrace();}
}//end while
}//close tellEveryone
}//close class
This is the block that is giving me trouble:
Code:
while(true) {
Socket = clientSocket = serverSock.accept();
PrintWriter writer = new PrintWriter(clientSocket.getOuputStream());
clientOutputStreams.add(writer);
Thread t = new Thread(new ClientHandler(clientSocket));
t.start();
System.out.println("got a connection");
}
It is saying that "ClientSocket" and "Socket" cannot be resolved to a variable, which is odd because I'm pretty sure that this right here defined the ClientSocket:
Code:
public ClientHandler(Socket clientSocket){
try{
sock = clientSocket;
InputStreamReader isReader = new InputStreamReader(sock.getInputStream());
}catch(Exception ex) {ex.printStackTrace();}
}//close constructor
Any and all help is appreciated, if this is in the wrong forum I apologize, this has to do with sockets and server connections so I figured Networking would be a great place to start.
Thanks!