Listing 1
// Joe Novosel
// StreamListener
// This is a class that is launched as a thread to
// listen to the server for
// Incoming data
// This is roughly taken from a similar program
// in 'Java in a Nutshell'
import java.applet.*;
import java.awt.*;
import java.io.*;
import java.net.*;
public class CBListener extends Thread{
DataInputStream dis;
TextArea output;
int channel;
int command;
byte[] buffer = new byte[120];
String line;
public CBListener(DataInputStream dis, TextArea output){
this.dis = dis;
this.output = output;
this.start(); //launch the thread
}
public void run(){
String handle;
String message;
try{
for(;;){
//let's do this forever
(or at least until we're killed)
channel =dis.readInt();
//read a channel command=dis.readInt();
//read a command (we won't use it here)
for(int i=0;i<120;i++)
//read the handle and message byte array
buffer[i]=dis.readByte();
System.out.print("(");
handle =new String(buffer,0,0,20);
//print the handle
message = new String(buffer,0,20,100);
output.appendText("("+handle);
//print it to the screen
output.appendText(") "+message);
output.appendText("\n");
}
}catch (IOException e)output.setText(e.toString());
finally output.setText("Connection closed by server.");
}
}