Socket - Receber e enviar stream ao invés de strings

Bom dia pessoal, eu tenho essa aplicação aí que é um servidor de chat(socket), como eu faço pra receber e enviar ao invés de string fazer com stream, as mensagens que vão ser enviadas pra ele tão em stream e lá também vai receber o stream, []'s a todos.

Desculpa esqueci as classes

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package servidor;

/**
*

  • @author LEOGAZIO
    */
    import java.io.IOException;
    import java.net.ServerSocket;
    import java.net.Socket;

public class ChatServer {
public static final int DEFAULT_PORT = 7000;
public static void main(String[] args) {
int port = DEFAULT_PORT;
ServerSocket serverSocket = null;
Socket socket = null;
try {
if(args.length > 0)
port = Integer.parseInt(args[0]);
} catch(NumberFormatException nfe) {
System.err.println(“Usage: java ChatServer [port]”);
System.err.println(“Where options include:”);
System.err.println("\tport the port on which to listen.");
System.exit(0);
}
try {
serverSocket = new ServerSocket(port);
while(true) {
socket = serverSocket.accept();
ChatHandler handler = new ChatHandler(socket);
handler.start();
}
} catch(IOException ioe) {
ioe.printStackTrace();
} finally {
try {
serverSocket.close();
} catch(IOException ioe) {
ioe.printStackTrace();
}
}
}
}
[/code]

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */

package servidor;

/**
*

  • @author LEOGAZIO
    */
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.IOException;
    import java.io.OutputStreamWriter;
    import java.io.PrintWriter;
    import java.net.Socket;
    import java.util.Vector;

public class ChatHandler extends Thread {
static Vector handlers = new Vector( 10 );
private Socket socket;
private BufferedReader in;
private PrintWriter out;

public ChatHandler(Socket socket) throws IOException {
    this.socket = socket;
in = new BufferedReader(
    new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(
    new OutputStreamWriter(socket.getOutputStream()));
}
public void run() {
    String line;
synchronized(handlers) {
    handlers.addElement(this);

// add() not found in Vector class
}
try {
while(!(line = in.readLine()).equalsIgnoreCase("/quit")) {
for(int i = 0; i < handlers.size(); i++) {
synchronized(handlers) {
ChatHandler handler =
(ChatHandler)handlers.elementAt(i);
handler.out.println(line + “\r”);
handler.out.flush();
}
}
}
} catch(IOException ioe) {
ioe.printStackTrace();
} finally {
try {
in.close();
out.close();
socket.close();
} catch(IOException ioe) {
} finally {
synchronized(handlers) {
handlers.removeElement(this);
}
}
}
}
}

[/code]