try {
out = socket.getOutputStream();
in = socket.getInputStream();
lexer = new StreamLexer(in);
Command cmd = new Command("attach");
cmd.addKey("client", "XNap");
cmd.addKey("version", XNap.VERSION);
if (user != null) {
cmd.addKey("profile", user);
}
queueCommand(cmd);
cmd = null;
while (!exitProcessThread) {
Thread.sleep(10);
if (false) { // FIX : !socket.isConnected()
break;
}
if (in.available() != 0) {
cmd = lexer.parse();
if (debug) {
fireEvent(new DebugEvent(DebugEvent.RECEIVE, cmd));
}
dispatchCommand(cmd);
}
cmd = null;
if (!outQueue.isEmpty()) {
cmd = (Command) outQueue.remove(0);
if (debug) {
fireEvent(new DebugEvent(DebugEvent.SEND, cmd));
}
;
out.write(cmd.print().getBytes());
}
if (System.currentTimeMillis() > NetworkStatsTimer) {
UpdateNetworkStats();
NetworkStatsTimer = System.currentTimeMillis() +