1 // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
2 // Jad home page: http://www.kpdus.com/jad.html
3 // Decompiler options: packimports(3) fieldsfirst nonlb space
7 import java.io.DataInputStream;
9 import java.util.logging.Level;
10 import java.util.logging.Logger;
11 import javax.swing.JFrame;
12 import javax.swing.JOptionPane;
14 // Referenced classes of package mcsClient:
15 // McsTcpConnection, LockingKeyStateManager, McsVersion
17 public class MessageReader
20 private DataInputStream socketInput;
21 private int localPort;
22 private InetAddress localAddress;
23 private McsVersion mcsVersion;
24 private LockingKeyStateManager lockingKeyStateManager;
25 private DatagramSocket dgSocket;
26 private boolean firstIdleTime;
27 private int idleTimer1;
28 private int savedIdleTimer1;
29 private int roundTripTime;
30 private static Logger logger = Logger.getAnonymousLogger();
32 public MessageReader(McsTcpConnection mcstcpconnection, McsVersion mcsversion, LockingKeyStateManager lockingkeystatemanager) {
35 socketInput = mcstcpconnection.getSocketInput();
36 localPort = mcstcpconnection.getLocalPort();
37 localAddress = mcstcpconnection.getLocalAddress();
38 mcsVersion = mcsversion;
39 lockingKeyStateManager = lockingkeystatemanager;
40 logger.setLevel(Level.WARNING);
41 String s = System.getProperty("mcs.debug");
42 if (s != null && s.equalsIgnoreCase("true"))
43 logger.setLevel(Level.ALL);
45 dgSocket = new DatagramSocket(0, localAddress);
47 catch (Exception exception) {
48 logger.warning(exception.toString());
52 private void cleanupThread() {
53 if (dgSocket != null) {
54 dgSocket.disconnect();
61 private void process() {
63 boolean flag1 = false;
64 boolean flag2 = false;
65 boolean flag3 = false;
66 boolean flag4 = false;
67 boolean flag5 = false;
69 Thread thread = Thread.currentThread();
72 if (!Thread.interrupted()) {
76 i = socketInput.readInt();
77 j = socketInput.readInt();
79 catch (Exception exception) {
80 logger.info("Message Reader - Socket closed");
84 logger.warning("Message Reader - invalid message length = " + i + ", command = " + j);
85 JOptionPane.showMessageDialog(new JFrame(), "Invalid message data", "Remote Console Data Communication Error", 0);
88 Thread _tmp1 = thread;
89 if (Thread.interrupted()) {
90 logger.info("MessageReader interrupted. Exiting.");
100 byte abyte0[] = new byte[1458];
101 abyte0[2] = (byte)(i >> 8);
104 DatagramPacket datagrampacket;
107 socketInput.readFully(abyte0, 8, i - 8);
108 datagrampacket = new DatagramPacket(abyte0, i, dgSocket.getLocalAddress(), localPort);
110 catch (Exception exception1) {
111 logger.severe("Message Reader - error reading video datagram - " + exception1 + ", length = " + i);
112 JOptionPane.showMessageDialog(new JFrame(), "Error reading video data. Exit and start again.", "Remote Console Data Communication Error", 0);
116 dgSocket.send(datagrampacket);
119 catch (Exception exception2) {
120 exception2.printStackTrace();
121 logger.severe("Message Reader - error sending video datagram - " + exception2);
122 JOptionPane.showMessageDialog(new JFrame(), "Error sending video data. Exit and start again.", "Remote Console Data Communication Error", 0);
128 int k = socketInput.readInt();
129 logger.info("Message Reader got keyboard state " + Integer.toHexString(k & 0xff));
130 lockingKeyStateManager.setTargetKeyState(k);
133 catch (Exception exception3) {
134 logger.severe("Message Reader - error seting key state - " + exception3);
136 JOptionPane.showMessageDialog(new JFrame(), "Error setting key states. Exit and start again.", "Remote Console Data Communication Error", 0);
141 idleTimer1 = socketInput.readInt();
143 catch (Exception exception4) {
144 logger.severe("Message Reader - error reading idle time - " + exception4);
145 JOptionPane.showMessageDialog(new JFrame(), "Error idle time data. Exit and start again.", "Remote Console Data Communication Error", 0);
149 logger.info("Idle Time1 (%): " + ((idleTimer1 - savedIdleTimer1) * 1000) / 0x16052);
151 firstIdleTime = false;
152 savedIdleTimer1 = idleTimer1;
158 l = socketInput.readInt();
160 catch (Exception exception5) {
161 logger.severe("Message Reader - error reading keepalive - " + exception5);
162 JOptionPane.showMessageDialog(new JFrame(), "Error reading keep-alive message. Exit and start again.", "Remote Console Data Communication Error", 0);
165 roundTripTime = (int)System.currentTimeMillis() - l;
166 logger.info("Round trip time (ms) = " + roundTripTime);
171 mcsVersion.setServerMajorRev(socketInput.readInt());
172 mcsVersion.setServerMinorRev(socketInput.readInt());
175 catch (Exception exception6) {
176 logger.severe("Message Reader - error reading server version - " + exception6);
178 JOptionPane.showMessageDialog(new JFrame(), "Error reading application version information. Exit and start again.", "Remote Console Data Communication Error", 0);
196 logger.warning("MessageReader - unexpected message code " + j);
199 byte abyte1[] = new byte[i - 8];
201 socketInput.read(abyte1, 0, abyte1.length);
204 catch (Exception exception7) {
205 logger.severe("Message Reader - error reading socket - " + exception7);
207 JOptionPane.showMessageDialog(new JFrame(), "Error reading data from server. Exit and start again.", "Remote Console Data Communication Error", 0);
221 protected void finalize() throws Throwable {