Avatar billede korup Nybegynder
01. oktober 2002 - 12:22 Der er 36 kommentarer og
1 løsning

Hvordan laver jeg en instans af en klasse?

Hej

Hvordan laver jeg en instans af en klasse som ligger på en anden server.
F.x.

jeg har en class fil der hedder person.class, som ligger på 192.16.10.10/person.class
og min anden fil main.class ligger på min webserver
192.161.10.1/main.class

så ville jeg gerne kunne oprette en instans af person filen,men hvordan..

/korup
Avatar billede r9 Nybegynder
01. oktober 2002 - 12:29 #1
Avatar billede korup Nybegynder
01. oktober 2002 - 12:34 #2
r9:
Et eksempel ville være dejligt..

/korup
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 12:40 #3
Dette er ikke aftestet, men burde virke i følge beskrivelsen i java.net.URLClassLoader

Det burde få dig lidt af vejen, i hvert fald :-)

// Load person.class fra URL'en 192.16.10.10
URL[] location = new URL[1];
location[0] = new URL("192.16.10.10");
ClassLoader loader = new URLClassLoader(location);
Class personClass = loader.findClass("person");
Object person = personClass.newInstance();


/Søren Munk Skrøder
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 12:41 #4
Jeg går stærkt ud fra at der er en masse Exceptions, som skal gribes, men det har jeg ikke taget med :-)
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 12:59 #5
Ok ... Her er en virkende kode... Og du kan endda teste den i forhold til den "Hello.class", som findes på www.skroeder.dk/Hello.class

-----------------
import java.net.*;

public class HelloLoaderTest {
    public static void main(String[] args) {
        URL[] location = new URL[1];
        try {
            location[0] = new URL("http://www.skroeder.dk");
            URLClassLoader loader = new URLClassLoader(location);
            loader.loadClass("Hello");
           
            Hello hello = new Hello();
            hello.sayHello();
        } catch(SecurityException secEx) {
        } catch(MalformedURLException mURLEx) {
        } catch(ClassNotFoundException cnfEx) {
        }
    }
}
-----------------

Denne kode er kompileret og class-filen ligger på serveren :
-----------------
public class Hello {
    public void sayHello() {
        System.out.println("Hello...");
    }
}
-----------------

Mit output :
D:\>cr HelloLoaderTest

D:\>javac HelloLoaderTest.java

D:\>java HelloLoaderTest
Hello...

D:\>
Avatar billede korup Nybegynder
01. oktober 2002 - 13:09 #6
Det er dejligt at der er folk som dig der kommer med noget helt uvurderlig hjælp.

Takker mange gange!

/korup
Avatar billede korup Nybegynder
01. oktober 2002 - 13:11 #7
Det er bare ærgeliget at jeg ikke kan bruge min class fil da det er en applet som en masse metoder jeg får denne fejl:

Backup.java:21: cannot resolve symbol
symbol  : method xplug  ()
location: class Backup
            xplug cam = xplug();
                        ^
1 error


/korup
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 13:12 #8
Jeg takker både for points og for en interessant opgave... Jeg var også på nippet til at sige RMI - men så tænkte jeg, hvor besværligt, jeg selv synes RMI er - og at Java også tit er blevet kaldt Netværkets Programmeringssprog - så jeg undersøgte om der ikke var nogen let måde at load en klasse fra internettet og vupti - java.net.URLClassLoader sprang i øjnene på mig ...

Pointsne er egenligt ligemeget -- men jeg har også lært noget denne gang - og det er det fedeste omkring at løse opgaver her på eksperten.dk

/Søren Munk Skrøder
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 13:16 #9
En af bagdelene ved ikke at have det liggende lokalt er, at du kun får tilgang til public metoder - men hvis du har "kontrol" over din person.class også, så sørg for at "offentlige metoder bliver offentlige" ved at give dem "public" modifieren
  som i "public void sayHello()"
i mit eksempel

Generelt er det god skik at føre "visibility-modifiers" på alle ens klasser, attributter og metoder, dvs. private, public eller protected..

/Søren
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 13:17 #10
korup >> kan man se noget kode, hvor du ønsker at behandle din person.class ???
Avatar billede korup Nybegynder
01. oktober 2002 - 13:18 #11
Kode fra bearhugx
----------------------------------
import java.net.*;


public class Backup
{
  public Backup()
  {
 
  }
  public static void main(String ARGS[])
  {
        URL[] location = new URL[1];
        try {
            location[0] = new URL("http://192.16.130.98");
            URLClassLoader loader = new URLClassLoader(location);
            loader.loadClass("xplug");
           
            xplug cam = xplug();
           
        } catch(SecurityException secEx) {
        } catch(MalformedURLException mURLEx) {
        } catch(ClassNotFoundException cnfEx) {
        }
  }
}
-----------------------------------------------

Kode udplug fra kameraServer:


--------------------------------------------------

import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;
import java.io.*;
import java.net.Socket;
import java.net.URL;

public class xplug extends Applet
    implements Runnable
{
   

    public xplug()
    {
       
    }

    public void init()
    {
     
    }

    public void destroy()
    {
     
       
    }

    public void start()
    {
        Play();
    }

    public void stop_load()
    {
        stop_load();
    }
public int SetIOOut1(int i)
    {
        byte abyte0[] = new byte[6];
        byte abyte1[] = new byte[4];
        byte abyte2[] = new byte[30];
        if(!tilslutning)
        {
            return int_0;
        }
        if(!Boolean_bruges)
        {
            int j = GetRealTimeData();
            if(j != SetDenRemotePort)
            {
                return int_0;
            }
        }
        try
        {
            abyte0[0] = 48;
            abyte0[1] = 48;
            abyte0[2] = 48;
            abyte0[3] = 50;
            abyte0[4] = 1;
            abyte0[5] = (byte)i;
            OutputStream_2.write(abyte0);
            Thread.currentThread();
            Thread.sleep(3L);
            InputStream_2.readFully(abyte1, 0, 4);
            if(_$2528(abyte1, _$1728, 4))
            {
                InputStream_2.readFully(abyte2, 0, 30);
                int k = SetDenRemotePort;
                return k;
            }
            if(_$2528(abyte1, _$1765, 4))
            {
                InputStream_2.readFully(abyte2, 0, 30);
                int l = int_0;
                return l;
            } else
            {
                int i1 = int_0;
                return i1;
            }
        }
        catch(Exception exception)
        {
            System.err.println(exception);
        }
        int j1 = int_0;
        return j1;
    }

    public int GetIOOut2()
    {
        return IO_Ud2;
    }

    public int SetIOOut2(int i)
    {
        byte abyte0[] = new byte[6];
        byte abyte1[] = new byte[4];
        byte abyte2[] = new byte[30];
        if(!tilslutning)
        {
            return int_0;
        }
        if(!Boolean_bruges)
        {
            int j = GetRealTimeData();
            if(j != SetDenRemotePort)
            {
                return int_0;
            }
        }
        try
        {
            abyte0[0] = 48;
            abyte0[1] = 48;
            abyte0[2] = 48;
            abyte0[3] = 50;
            abyte0[4] = 2;
            abyte0[5] = (byte)i;
            OutputStream_2.write(abyte0);
            Thread.currentThread();
            Thread.sleep(3L);
            InputStream_2.readFully(abyte1, 0, 4);
            if(_$2528(abyte1, _$1728, 4))
            {
                InputStream_2.readFully(abyte2, 0, 30);
                int k = SetDenRemotePort;
                return k;
            }
            if(_$2528(abyte1, _$1765, 4))
            {
                InputStream_2.readFully(abyte2, 0, 30);
                int l = int_0;
                return l;
            } else
            {
                int i1 = int_0;
                return i1;
            }
        }
        catch(Exception exception)
        {
            System.err.println(exception);
        }
        int j1 = int_0;
        return j1;
    }
}
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 13:20 #12
bruger xplug andre klasser (undres f.eks. over hvad _$2328(...)er for noget)...

måske er der flere klasser, som også bør hentes ned...
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 13:23 #13
og så skal du lige huske "new" i
  xplug cam =  new xplug();

du har skrevet
  xplug cam = xplug(); !!!!
Avatar billede korup Nybegynder
01. oktober 2002 - 13:23 #14
Du får lige hele historien.
Vi er igang med at lave et system til et firma og skal bruge nogle kameraer og producenterne har ikke været så hjælpsomme.
Så vi har decomplieret deres applet og håber at kunne kalde deres metoder og derved kunne komunikerer med kameraet.

HEr der den koden:
.--------------------------------
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;
import java.io.*;
import java.net.Socket;
import java.net.URL;

public class xplug extends Applet
    implements Runnable
{
    /* member class not found */
    class SI {}


    private String hentRemoteHost;
    private URL URL_CAM;
    private Integer hentRemotePort;
    private Integer Int_2;
    private Long Long_1;
    private Long Long_2;
    private Double Double_1;
    private String Str_2;
    private byte _$998[];
    private Thread _$1016;
    private SI obj_SI;
    private Image Billede;
    private int _$1070;
    private boolean boolean_koer;
    private byte byte_array1[];
    private Socket O_Socket;
    private DataInputStream InputStream_1;
    private DataOutputStream OutputStream_1;
    private Socket O_Socket_2;
    private DataInputStream InputStream_2;
    private DataOutputStream OutputStream_2;
    private boolean stop_load;
    private boolean Boolean_inaktiv;
    private boolean Boolean_bruges;
    private boolean tilslutning;
    private long Long3;
    private long _$1302;
    private long _$1314;
    private float Float_framerate;
    private int IO_Ind1;
    private int IO_Ind2;
    private int IO_Ud1;
    private int IO_Ud2;
    private int Sec;
    private int Min;
    private int Hour;
    private int Dato;
    private int Month;
    private int Day;
    private int Year;
    private String strTime;
    private byte _$1437[];
    private byte _$1455[];
    private byte _$1480[];
    private byte _$1513[];
    private byte _$1532[];
    private byte _$1559[];
    private byte _$1573[];
    private byte _$1599[];
    private byte _$1621[];
    private byte _$1649[];
    private byte _$1680[];
    private byte _$1710[];
    private byte _$1728[];
    private byte _$1736[];
    private byte _$1745[];
    private byte _$1765[];
    private byte _$1785[];
    private int SetDenRemotePort;
    private int int_0;
    private int int_1;
    private int int_2;
    private int int_3;
    private int int_4;
    private int int_5;
    private int int_6;
    private int int_7;
    private int int_8;
    private int int_9;
    private int int_10;
    private int _$2067;

    public xplug()
    {
        Billede = null;
        boolean_koer = false;
        byte_array1 = new byte[0x186a0];
        SetDenRemotePort = -1;
        int_0 = 0;
        int_1 = 1;
        int_2 = 2;
        int_3 = 3;
        int_4 = 4;
        int_5 = 5;
        int_6 = 6;
        int_7 = 7;
        int_8 = 8;
        int_9 = 9;
        int_10 = 10;
        _$2067 = 11;
    }

    public void init()
    {
        byte abyte0[] = new byte[126];
        byte abyte1[] = new byte[4];
        byte abyte2[] = new byte[30];
        try
        {
            String s = new String("0110");
            _$1437 = s.getBytes("8859_1");
            s = new String("0111");
            _$1455 = s.getBytes("8859_1");
            s = new String("0112");
            _$1480 = s.getBytes("8859_1");
            s = new String("0001");
            _$1513 = s.getBytes("8859_1");
            s = new String("0002");
            _$1532 = s.getBytes("8859_1");
            s = new String("1111");
            _$1559 = s.getBytes("8859_1");
            s = new String("0003");
            _$1573 = s.getBytes("8859_1");
            s = new String("0001");
            _$1599 = s.getBytes("8859_1");
            s = new String("0200");
            _$1621 = s.getBytes("8859_1");
            s = new String("0201");
            _$1649 = s.getBytes("8859_1");
            s = new String("0202");
            _$1680 = s.getBytes("8859_1");
            s = new String("0301");
            _$1710 = s.getBytes("8859_1");
            s = new String("0210");
            _$1728 = s.getBytes("8859_1");
            s = new String("0211");
            _$1736 = s.getBytes("8859_1");
            s = new String("0501");
            _$1745 = s.getBytes("8859_1");
            s = new String("0502");
            _$1765 = s.getBytes("8859_1");
            s = new String("0503");
            _$1785 = s.getBytes("8859_1");
            URL_CAM = getCodeBase();
            hentRemoteHost = URL_CAM.getHost();
            hentRemotePort = Integer.valueOf(getParameter("RemotePort"));
            Int_2 = Integer.valueOf(getParameter("Timeout"));
            Long_1 = Long.valueOf(getParameter("PreviewFrameRate"));
            Double_1 = Double.valueOf(getParameter("RotateAngle"));
            Str_2 = getParameter("DeviceSerialNo");
            _$998 = Str_2.getBytes("8859_1");
            Long3 = 0L;
            _$1302 = System.currentTimeMillis();
            _$1314 = System.currentTimeMillis();
            Float_framerate = 0.0F;
            stop_load = false;
            Boolean_inaktiv = false;
            Boolean_bruges = false;
        }
        catch(Exception exception)
        {
            System.err.println(exception);
        }
    }

    public void destroy()
    {
        try
        {
            OutputStream_2.write(_$1559);
            InputStream_2.close();
            OutputStream_2.close();
            O_Socket_2.close();
        }
        catch(Exception exception)
        {
            System.err.println(exception);
        }
    }

    public void start()
    {
        Play();
    }

    public void stop_load()
    {
        stop_load();
    }

    public void paint(Graphics g)
    {
        if(Billede != null)
        {
            g.drawImage(Billede, 0, 0, Billede.getWidth(null), Billede.getHeight(null), this);
        }
    }

    public void update(Graphics g)
    {
        paint(g);
    }

    public void run()
    {
        boolean flag;
        byte abyte1[];
        byte abyte2[];
        byte abyte3[];
        byte abyte5[];
        int i;
        byte abyte7[];
        long l1;
        Thread thread;
        byte abyte0[] = new byte[4];
        abyte1 = new byte[Str_2.length() + 4];
        abyte2 = new byte[126];
        abyte3 = new byte[30];
        byte abyte4[] = new byte[26];
        abyte5 = new byte[4];
        byte abyte6[] = new byte[44];
        float f = 0.0F;
        i = 0;
        boolean flag1 = false;
        abyte7 = new byte[4];
        l1 = 1L;
        flag = true;
        tilslutning = false;
        thread = Thread.currentThread();
        if(thread != _$1016) goto _L2; else goto _L1
_L1:
        int j;
        if(!flag || !stop_load)
        {
            break; /* Loop/switch isn't completed */
        }
        try
        {
            O_Socket = new Socket(hentRemoteHost, hentRemotePort.intValue());
            O_Socket.setSoTimeout(Int_2.intValue());
            InputStream_1 = new DataInputStream(O_Socket.getInputStream());
            OutputStream_1 = new DataOutputStream(O_Socket.getOutputStream());
            tilslutning = true;
        }
        catch(IOException ioexception)
        {
            System.err.println("<err>: Establish image connection.");
            tilslutning = false;
            continue; /* Loop/switch isn't completed */
        }
        try
        {
            InputStream_1.readFully(abyte5, 0, 4);
            if(_$2528(abyte5, _$1621, 4) || _$2528(abyte5, _$1649, 4) || _$2528(abyte5, _$1680, 4))
            {
                InputStream_1.readFully(abyte2, 0, 126);
                j = abyte2[125] * 256 + abyte2[124];
            } else
            if(_$2528(abyte5, _$1710, 4))
            {
                InputStream_1.readFully(abyte2, 0, 126);
                for(int k = 0; k < 4; k++)
                {
                    abyte1[k] = _$1573[k];
                }

                for(int l = 0; l < Str_2.length(); l++)
                {
                    abyte1[4 + l] = _$998[l];
                }

                OutputStream_1.write(abyte1);
                InputStream_1.readFully(abyte5, 0, 4);
                if(_$2528(abyte5, _$1621, 4) || _$2528(abyte5, _$1649, 4) || _$2528(abyte5, _$1680, 4))
                {
                    InputStream_1.readFully(abyte2, 0, 126);
                    j = abyte2[125] * 256 + abyte2[124];
                } else
                {
                    InputStream_1.close();
                    OutputStream_1.close();
                    O_Socket.close();
                    tilslutning = false;
                    continue; /* Loop/switch isn't completed */
                }
            } else
            {
                if(_$2528(abyte5, _$1745, 4))
                {
                    InputStream_1.readFully(abyte3, 0, 30);
                    InputStream_1.close();
                    OutputStream_1.close();
                    O_Socket.close();
                    tilslutning = false;
                } else
                {
                    InputStream_1.close();
                    OutputStream_1.close();
                    O_Socket.close();
                    tilslutning = false;
                }
                continue; /* Loop/switch isn't completed */
            }
        }
        catch(IOException ioexception1)
        {
            System.err.println("<err>: Get image welcome message.");
            tilslutning = false;
            continue; /* Loop/switch isn't completed */
        }
        if(j == 0)
        {
            l1 = 5L;
        } else
        if(j == 1)
        {
            l1 = 950L;
        } else
        if(j == 5)
        {
            l1 = 150L;
        } else
        if(j == 7)
        {
            l1 = 100L;
        } else
        if(j == 15)
        {
            l1 = 20L;
        } else
        if(j == 20)
        {
            l1 = 10L;
        }
        boolean_koer = false;
_L5:
        if(!stop_load)
        {
            break MISSING_BLOCK_LABEL_1148;
        }
        int j1;
        int i2;
        if(j == 0)
        {
            l1 = 5L;
        } else
        if(++i >= j * 3)
        {
            i = 0;
            if((double)Float_framerate < (double)j * 0.69999999999999996D)
            {
                if(l1 > (long)5)
                {
                    l1 -= 2;
                }
            } else
            if((double)Float_framerate < (double)j * 0.93000000000000005D)
            {
                if(l1 > (long)5)
                {
                    l1 -= 1;
                }
            } else
            if((double)Float_framerate > (double)j * 1.3D)
            {
                l1 += 2;
            } else
            if((double)Float_framerate > (double)j * 1.0700000000000001D)
            {
                l1 += 1;
            }
        }
        Thread.currentThread();
        Thread.sleep(l1);
        while(boolean_koer)
        {
            Thread.currentThread();
            Thread.sleep(2L);
        }
        OutputStream_1.write(_$1437);
        Thread.currentThread();
        Thread.sleep(3L);
        j1 = 0;
        i2 = 0;
_L4:
        if(j1 == 4)
        {
            break MISSING_BLOCK_LABEL_954;
        }
        j1 = InputStream_1.read(abyte7, 0, 4);
        if(j1 != 4)
        {
            if(++i2 > 15000)
            {
                break MISSING_BLOCK_LABEL_954;
            }
            Thread.currentThread();
            Thread.sleep(1L);
        }
        if(true) goto _L4; else goto _L3
_L3:
        Exception exception;
        exception;
        i2 = 20000;
        if(i2 > 15000)
        {
            break MISSING_BLOCK_LABEL_1148;
        }
        _$1070 = abyte7[3] << 24 & 0xff000000 | abyte7[2] << 16 & 0xff0000 | abyte7[1] << 8 & 0xff00 | abyte7[0] & 0xff;
        if(_$1070 != 0) goto _L6; else goto _L5
_L6:
        int i1;
        i1 = 0;
        i2 = 0;
_L8:
        if(i1 >= _$1070)
        {
            break; /* Loop/switch isn't completed */
        }
        int k1 = InputStream_1.read(byte_array1, i1, 2048);
        if(k1 > 0)
        {
            i1 += k1;
            i2 = 0;
        } else
        if(++i2 > 15000)
        {
            break; /* Loop/switch isn't completed */
        }
        Thread.currentThread();
        Thread.sleep(1L);
        if(true) goto _L8; else goto _L7
        exception;
        i2 = 20000;
_L7:
        if(i2 < 15000)
        {
            boolean_koer = true;
        } else
        {
            tilslutning = false;
            break MISSING_BLOCK_LABEL_1148;
        }
          goto _L5
        exception;
        System.err.println("<err>: Getting image connection broken.");
        tilslutning = false;
        Float_framerate = 0.0F;
        if(!stop_load)
        {
            flag = false;
            try
            {
                OutputStream_1.write(_$1559);
                InputStream_1.close();
                OutputStream_1.close();
                O_Socket.close();
                tilslutning = false;
            }
            catch(Exception exception1)
            {
                System.err.println(exception1);
            }
        } else
        {
            try
            {
                InputStream_1.close();
                OutputStream_1.close();
                O_Socket.close();
                tilslutning = false;
            }
            catch(Exception exception2)
            {
                System.err.println(exception2);
            }
        }
        if(true) goto _L1; else goto _L2
_L2:
    }

    public int GetRealTimeData()
    {
        byte abyte0[] = new byte[26];
        byte abyte1[] = new byte[44];
        byte abyte2[] = new byte[126];
        byte abyte3[] = new byte[4];
        byte abyte4[] = new byte[30];
        byte abyte5[] = new byte[Str_2.length() + 4];
        if(!tilslutning)
        {
            return int_0;
        }
        System.err.println(tilslutning);
        if(!Boolean_bruges)
        {
            try
            {
                O_Socket_2 = new Socket(hentRemoteHost, hentRemotePort.intValue());
                O_Socket_2.setSoTimeout(Int_2.intValue());
                InputStream_2 = new DataInputStream(O_Socket_2.getInputStream());
                OutputStream_2 = new DataOutputStream(O_Socket_2.getOutputStream());
            }
            catch(Exception exception)
            {
                System.err.println("<err>: Establish realtime data connection.");
                Boolean_bruges = false;
                tilslutning = false;
                int j1 = int_5;
                return j1;
            }
            try
            {
                InputStream_2.readFully(abyte3, 0, 4);
                if(_$2528(abyte3, _$1621, 4) || _$2528(abyte3, _$1649, 4) || _$2528(abyte3, _$1680, 4))
                {
                    InputStream_2.readFully(abyte2, 0, 126);
                    Boolean_bruges = true;
                } else
                if(_$2528(abyte3, _$1710, 4))
                {
                    InputStream_2.readFully(abyte2, 0, 126);
                    for(int i = 0; i < 4; i++)
                    {
                        abyte5[i] = _$1573[i];
                    }

                    for(int j = 0; j < Str_2.length(); j++)
                    {
                        abyte5[4 + j] = _$998[j];
                    }

                    OutputStream_2.write(abyte5);
                    InputStream_2.readFully(abyte3, 0, 4);
                    if(_$2528(abyte3, _$1621, 4) || _$2528(abyte3, _$1649, 4) || _$2528(abyte3, _$1680, 4))
                    {
                        InputStream_2.readFully(abyte2, 0, 126);
                        Boolean_bruges = true;
                    } else
                    {
                        InputStream_2.close();
                        OutputStream_2.close();
                        O_Socket_2.close();
                        Boolean_bruges = false;
                        int k = int_0;
                        return k;
                    }
                } else
                if(_$2528(abyte3, _$1745, 4))
                {
                    InputStream_2.readFully(abyte4, 0, 30);
                    InputStream_2.close();
                    OutputStream_2.close();
                    O_Socket_2.close();
                    Boolean_bruges = false;
                    int l = _$2067;
                    return l;
                } else
                {
                    InputStream_2.close();
                    OutputStream_2.close();
                    O_Socket_2.close();
                    Boolean_bruges = false;
                    int i1 = int_4;
                    return i1;
                }
            }
            catch(IOException ioexception)
            {
                System.err.println("<err>: Get real-time data welcome msg.");
                try
                {
                    InputStream_2.close();
                    OutputStream_2.close();
                    O_Socket_2.close();
                }
                catch(Exception exception2)
                {
                    System.err.println(exception2);
                }
                Boolean_bruges = false;
                int k1 = int_0;
                return k1;
            }
        }
        try
        {
            OutputStream_2.write(_$1455);
            Thread.currentThread();
            Thread.sleep(5L);
            InputStream_2.readFully(abyte0, 0, 26);
            InputStream_2.readFully(abyte1, 0, 44);
            IO_Ind1 = abyte0[4];
            IO_Ind2 = abyte0[5];
            IO_Ud1 = abyte0[8];
            IO_Ud2 = abyte0[9];
            Sec = abyte0[13] * 256 + abyte0[12];
            Min = abyte0[15] * 256 + abyte0[14];
            Hour = abyte0[17] * 256 + abyte0[16];
            Dato = abyte0[19] * 256 + abyte0[18];
            Month = abyte0[21] * 256 + abyte0[20];
            Day = abyte0[23] * 256 + abyte0[22];
            Year = abyte0[25] * 256 + abyte0[24];
            strTime = new String(abyte1, "8859_1");
        }
        catch(Exception exception1)
        {
            System.err.println("<err>: Real-time data connection broken.");
            try
            {
                InputStream_2.close();
                OutputStream_2.close();
                O_Socket_2.close();
            }
            catch(Exception exception3)
            {
                System.err.println(exception3);
            }
            Boolean_bruges = false;
            int l1 = int_0;
            return l1;
        }
        return SetDenRemotePort;
    }

    public float GetFrameRate()
    {
        return Float_framerate;
    }

    public void CalculateFrameRate()
    {
        try
        {
            _$1314 = System.currentTimeMillis();
            float f = _$1314 - _$1302;
            if(f >= (float)1000)
            {
                Float_framerate = ((float)Long3 / f) * (float)1000;
                Long3 = 0L;
                _$1302 = _$1314;
            }
        }
        catch(Exception exception)
        {
            System.err.println(exception);
        }
    }

    public int Play()
    {
        if(!stop_load)
        {
            stop_load = true;
            obj_SI = new SI();
            obj_SI.start();
            _$1016 = new Thread(this);
            _$1016.start();
        }
        return SetDenRemotePort;
    }

    public void stop_load()
    {
        stop_load = false;
    }

    public String GetRemoteHost()
    {
        return hentRemoteHost;
    }

    public int GetRemotePort()
    {
        return hentRemotePort.intValue();
    }

    public int SetRemotePort(int i)
    {
        hentRemotePort = new Integer(i);
        return SetDenRemotePort;
    }

    public int GetTimeout()
    {
        return Int_2.intValue();
    }

    public int SetTimeout(int i)
    {
        Int_2 = new Integer(i);
        return SetDenRemotePort;
    }

    public long GetPreviewFrameRate()
    {
        return Long_1.longValue();
    }

    public int SetPreviewFrameRate(long l)
    {
        Long_1 = new Long(l);
        return SetDenRemotePort;
    }

    public double GetRotateAngle()
    {
        return Double_1.doubleValue();
    }

    public int SetRotateAngle(double d)
    {
        Double_1 = new Double(d);
        return SetDenRemotePort;
    }

    private boolean _$2528(byte abyte0[], byte abyte1[], int i)
    {
        for(int j = 0; j < i; j++)
        {
            if(abyte0[j] != abyte1[j])
            {
                return false;
            }
        }

        return true;
    }

    public int GetIOIn1()
    {
        return IO_Ind1;
    }

    public int GetIOIn2()
    {
        return IO_Ind2;
    }

    public int GetIOOut1()
    {
        return IO_Ud1;
    }

    public int SetIOOut1(int i)
    {
        byte abyte0[] = new byte[6];
        byte abyte1[] = new byte[4];
        byte abyte2[] = new byte[30];
        if(!tilslutning)
        {
            return int_0;
        }
        if(!Boolean_bruges)
        {
            int j = GetRealTimeData();
            if(j != SetDenRemotePort)
            {
                return int_0;
            }
        }
        try
        {
            abyte0[0] = 48;
            abyte0[1] = 48;
            abyte0[2] = 48;
            abyte0[3] = 50;
            abyte0[4] = 1;
            abyte0[5] = (byte)i;
            OutputStream_2.write(abyte0);
            Thread.currentThread();
            Thread.sleep(3L);
            InputStream_2.readFully(abyte1, 0, 4);
            if(_$2528(abyte1, _$1728, 4))
            {
                InputStream_2.readFully(abyte2, 0, 30);
                int k = SetDenRemotePort;
                return k;
            }
            if(_$2528(abyte1, _$1765, 4))
            {
                InputStream_2.readFully(abyte2, 0, 30);
                int l = int_0;
                return l;
            } else
            {
                int i1 = int_0;
                return i1;
            }
        }
        catch(Exception exception)
        {
            System.err.println(exception);
        }
        int j1 = int_0;
        return j1;
    }

    public int GetIOOut2()
    {
        return IO_Ud2;
    }

    public int SetIOOut2(int i)
    {
        byte abyte0[] = new byte[6];
        byte abyte1[] = new byte[4];
        byte abyte2[] = new byte[30];
        if(!tilslutning)
        {
            return int_0;
        }
        if(!Boolean_bruges)
        {
            int j = GetRealTimeData();
            if(j != SetDenRemotePort)
            {
                return int_0;
            }
        }
        try
        {
            abyte0[0] = 48;
            abyte0[1] = 48;
            abyte0[2] = 48;
            abyte0[3] = 50;
            abyte0[4] = 2;
            abyte0[5] = (byte)i;
            OutputStream_2.write(abyte0);
            Thread.currentThread();
            Thread.sleep(3L);
            InputStream_2.readFully(abyte1, 0, 4);
            if(_$2528(abyte1, _$1728, 4))
            {
                InputStream_2.readFully(abyte2, 0, 30);
                int k = SetDenRemotePort;
                return k;
            }
            if(_$2528(abyte1, _$1765, 4))
            {
                InputStream_2.readFully(abyte2, 0, 30);
                int l = int_0;
                return l;
            } else
            {
                int i1 = int_0;
                return i1;
            }
        }
        catch(Exception exception)
        {
            System.err.println(exception);
        }
        int j1 = int_0;
        return j1;
    }

    public int GetYear()
    {
        return Year;
    }

    public int GetMonth()
    {
        return Month;
    }

    public int GetDay()
    {
        return Day;
    }

    public int GetDate()
    {
        return Dato;
    }

    public int GetHour()
    {
        return Hour;
    }

    public int GetMinute()
    {
        return Min;
    }

    public int GetSecond()
    {
        return Sec;
    }

    public String GetTimeString()
    {
        return strTime;
    }

    public String GetVersion()
    {
        String s = "20011030";
        return s;
    }

    public boolean GetIsConnect()
    {
        return tilslutning;
    }

    public void ComputePasswordEncryption20(byte abyte0[], byte abyte1[], byte abyte2[])
    {
        for(int i = 0; i < 20; i++)
        {
            abyte0[i] = abyte1[i];
        }

        for(int j = 0; j < 2; j++)
        {
            for(int k = 0; k < 20; k++)
            {
                abyte0[k] ^= abyte2[k + j * 20];
                byte byte1 = (byte)(abyte0[k] & 0xf);
                byte byte0 = (byte)(abyte0[k] & 0xfffffff0);
                if((abyte0[k] & 1) != 0)
                {
                    byte1 ^= abyte2[k + j * 20 + 40];
                    byte1 &= 0xf;
                }
                if((abyte0[k] & 0x10) != 0)
                {
                    byte0 ^= abyte2[k + j * 20 + 40];
                    byte0 &= 0xf0;
                }
                abyte0[k] = (byte)(byte0 | byte1);
            }

        }

    }









}


/korup
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 13:23 #15
og der forsøger den at køre metoden Backup.xplug() - men det vil jo ikke virke :-))))
Avatar billede korup Nybegynder
01. oktober 2002 - 13:25 #16
Det med at huske new hjalp en del...... :(
Så skal jeg lige se om jeg kan bruge metoderne..


/korup
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 13:25 #17
LÆG MÆRKE TIL INDLÆG @ 01/10-2002 13:23:13 :
...
og så skal du lige huske "new" i
  xplug cam =  new xplug();

du har skrevet
  xplug cam = xplug(); !!!!
...
Avatar billede korup Nybegynder
01. oktober 2002 - 13:28 #18
Jeg får nu denne fejl:

java.lang.NoClassDefFoundError: xplug$SI
    at Backup.main(Backup.java:18)
Exception in thread "main"

/korup
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 13:31 #19
Jeg kan se, at den også bruger en intern klasse, kaldet SI

prøv at føre følgende kode ind i din Backup Loader :-)
loader.loadClass("xplug$SI");
Avatar billede korup Nybegynder
01. oktober 2002 - 13:31 #20
hvis jeg loader den i en applet kan jeg sagtens kalde de forskellige metoder med JavaScript.
Men jeg ville gerne have noget der kørte på webserveren i baggrunden.

/korup
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 13:33 #21
se indlæg @ 13.31.12
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 13:34 #22
jeg går ud fra at 192.16.130.98 er en privat ip-adresse, for jeg kan end ikke få kontakt til serveren :-/ :-))
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 13:37 #23
Hvor arbejder du for i øvrigt henne ...

Er på desperat jagt efter et job !

/Søren
Avatar billede korup Nybegynder
01. oktober 2002 - 13:45 #24
Hej
Nu får jeg en ClassNotFound Exception xplug$SI
HAr du en ide??

/korup
Avatar billede korup Nybegynder
01. oktober 2002 - 13:45 #25
http:/www.duca.dk
Avatar billede korup Nybegynder
01. oktober 2002 - 13:47 #26
Firmaet hedder afsluttende eksamensprojekt Datamatiker Nykøbing Falster
Så vi skulle være uddannet til arbejdsløshed til december..
:)

/korup
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 13:48 #27
he he he :-/
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 13:50 #28
hvis du kigger i din xplug.java - den decompilerede kode - så har den indsat kommentaren :
----------
public class xplug extends Applet
    implements Runnable
{
    /* member class not found */
    class SI {}

-----------

Måske har i ikke fået alle filer downloaded fra producentens side ... Der bør også være en fil med fil-navnet "xplug$SI.class" - den skal i også have fat i
Avatar billede korup Nybegynder
01. oktober 2002 - 13:51 #29
Jeg Starter så som selvstændig at vi har nogle rigtige gode vilkår hernede på øerne..

http://www.itvisioncenter.dk

/korup
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 13:56 #30
har i fundet den forsvundene "xplug$SI.class" endnu ???
Avatar billede korup Nybegynder
01. oktober 2002 - 14:07 #31
jepper... her er hele mulivitten..
-------------------------------------
import java.applet.Applet;
import java.awt.*;
import java.io.*;
import java.net.Socket;
import java.net.URL;

public class xplug extends Applet
    implements Runnable
{
    class SI extends Thread
    {

        private final xplug _$87241; /* synthetic field */

        public void run()
        {
            while(_$87241._$1213)
            {
                if(_$87241._$1077)
                {
                    _$87241._$1059 = Toolkit.getDefaultToolkit().createImage(_$87241._$1088, 0, _$87241._$1070);
                    if(_$87241._$1059 == null)
                    {
                        System.err.println("<err>:Fail to create m_imgCamera");
                    }
                    while(!Toolkit.getDefaultToolkit().prepareImage(_$87241._$1059, _$87241._$1059.getWidth(null), _$87241._$1059.getHeight(null), null))
                    {
                        try
                        {
                            Thread.currentThread();
                            Thread.sleep(1L);
                        }
                        catch(InterruptedException interruptedexception) { }
                    }
                    _$87241._$1077 = false;
                    _$87241.repaint();
                    _$87241._$1290 = _$87241._$1290 + (long)1;
                    _$87241.CalculateFrameRate();
                }
                try
                {
                    Thread.sleep(3L);
                }
                catch(Exception exception) { }
            }
        }

        SI()
        {
        }
    }


    private String _$859;
    private URL _$875;
    private Integer _$897;
    private Integer _$910;
    private Long _$924;
    private Long _$943;
    private Double _$973;
    private String _$987;
    private byte _$998[];
    private Thread _$1016;
    private SI _$1034;
    private Image _$1059;
    private int _$1070;
    private boolean _$1077;
    private byte _$1088[];
    private Socket _$1100;
    private DataInputStream _$1126;
    private DataOutputStream _$1149;
    private Socket _$1157;
    private DataInputStream _$1174;
    private DataOutputStream _$1193;
    private boolean _$1213;
    private boolean _$1230;
    private boolean _$1254;
    private boolean _$1278;
    private long _$1290;
    private long _$1302;
    private long _$1314;
    private float _$1325;
    private int _$1337;
    private int _$1345;
    private int _$1353;
    private int _$1362;
    private int _$1371;
    private int _$1380;
    private int _$1389;
    private int _$1396;
    private int _$1403;
    private int _$1411;
    private int _$1417;
    private String _$1424;
    private byte _$1437[];
    private byte _$1455[];
    private byte _$1480[];
    private byte _$1513[];
    private byte _$1532[];
    private byte _$1559[];
    private byte _$1573[];
    private byte _$1599[];
    private byte _$1621[];
    private byte _$1649[];
    private byte _$1680[];
    private byte _$1710[];
    private byte _$1728[];
    private byte _$1736[];
    private byte _$1745[];
    private byte _$1765[];
    private byte _$1785[];
    private int _$1809;
    private int _$1814;
    private int _$1822;
    private int _$1841;
    private int _$1863;
    private int _$1884;
    private int _$1906;
    private int _$1936;
    private int _$1971;
    private int _$1999;
    private int _$2017;
    private int _$2038;
    private int _$2067;

    public xplug()
    {
        _$1059 = null;
        _$1077 = false;
        _$1088 = new byte[0x186a0];
        _$1809 = -1;
        _$1814 = 0;
        _$1822 = 1;
        _$1841 = 2;
        _$1863 = 3;
        _$1884 = 4;
        _$1906 = 5;
        _$1936 = 6;
        _$1971 = 7;
        _$1999 = 8;
        _$2017 = 9;
        _$2038 = 10;
        _$2067 = 11;
    }

    public void init()
    {
        byte abyte0[] = new byte[126];
        byte abyte1[] = new byte[4];
        byte abyte2[] = new byte[30];
        try
        {
            String s = new String("0110");
            _$1437 = s.getBytes("8859_1");
            s = new String("0111");
            _$1455 = s.getBytes("8859_1");
            s = new String("0112");
            _$1480 = s.getBytes("8859_1");
            s = new String("0001");
            _$1513 = s.getBytes("8859_1");
            s = new String("0002");
            _$1532 = s.getBytes("8859_1");
            s = new String("1111");
            _$1559 = s.getBytes("8859_1");
            s = new String("0003");
            _$1573 = s.getBytes("8859_1");
            s = new String("0001");
            _$1599 = s.getBytes("8859_1");
            s = new String("0200");
            _$1621 = s.getBytes("8859_1");
            s = new String("0201");
            _$1649 = s.getBytes("8859_1");
            s = new String("0202");
            _$1680 = s.getBytes("8859_1");
            s = new String("0301");
            _$1710 = s.getBytes("8859_1");
            s = new String("0210");
            _$1728 = s.getBytes("8859_1");
            s = new String("0211");
            _$1736 = s.getBytes("8859_1");
            s = new String("0501");
            _$1745 = s.getBytes("8859_1");
            s = new String("0502");
            _$1765 = s.getBytes("8859_1");
            s = new String("0503");
            _$1785 = s.getBytes("8859_1");
            _$875 = getCodeBase();
            _$859 = _$875.getHost();
            _$897 = Integer.valueOf(getParameter("RemotePort"));
            _$910 = Integer.valueOf(getParameter("Timeout"));
            _$924 = Long.valueOf(getParameter("PreviewFrameRate"));
            _$973 = Double.valueOf(getParameter("RotateAngle"));
            _$987 = getParameter("DeviceSerialNo");
            _$998 = _$987.getBytes("8859_1");
            _$1290 = 0L;
            _$1302 = System.currentTimeMillis();
            _$1314 = System.currentTimeMillis();
            _$1325 = 0.0F;
            _$1213 = false;
            _$1230 = false;
            _$1254 = false;
        }
        catch(Exception exception)
        {
            System.err.println(exception);
        }
    }

    public void destroy()
    {
        try
        {
            _$1193.write(_$1559);
            _$1174.close();
            _$1193.close();
            _$1157.close();
        }
        catch(Exception exception)
        {
            System.err.println(exception);
        }
    }

    public void start()
    {
        Play();
    }

    public void stop()
    {
        Stop();
    }

    public void paint(Graphics g)
    {
        if(_$1059 != null)
        {
            g.drawImage(_$1059, 0, 0, _$1059.getWidth(null), _$1059.getHeight(null), this);
        }
    }

    public void update(Graphics g)
    {
        paint(g);
    }

    public void run()
    {
        boolean flag;
        byte abyte1[];
        byte abyte2[];
        byte abyte3[];
        byte abyte5[];
        int i;
        byte abyte7[];
        long l1;
        Thread thread;
        byte abyte0[] = new byte[4];
        abyte1 = new byte[_$987.length() + 4];
        abyte2 = new byte[126];
        abyte3 = new byte[30];
        byte abyte4[] = new byte[26];
        abyte5 = new byte[4];
        byte abyte6[] = new byte[44];
        float f = 0.0F;
        i = 0;
        boolean flag1 = false;
        abyte7 = new byte[4];
        l1 = 1L;
        flag = true;
        _$1278 = false;
        thread = Thread.currentThread();
        if(thread != _$1016) goto _L2; else goto _L1
_L1:
        int j;
        if(!flag || !_$1213)
        {
            break; /* Loop/switch isn't completed */
        }
        try
        {
            _$1100 = new Socket(_$859, _$897.intValue());
            _$1100.setSoTimeout(_$910.intValue());
            _$1126 = new DataInputStream(_$1100.getInputStream());
            _$1149 = new DataOutputStream(_$1100.getOutputStream());
            _$1278 = true;
        }
        catch(IOException ioexception)
        {
            System.err.println("<err>: Establish image connection.");
            _$1278 = false;
            continue; /* Loop/switch isn't completed */
        }
        try
        {
            _$1126.readFully(abyte5, 0, 4);
            if(_$2528(abyte5, _$1621, 4) || _$2528(abyte5, _$1649, 4) || _$2528(abyte5, _$1680, 4))
            {
                _$1126.readFully(abyte2, 0, 126);
                j = abyte2[125] * 256 + abyte2[124];
            } else
            if(_$2528(abyte5, _$1710, 4))
            {
                _$1126.readFully(abyte2, 0, 126);
                for(int k = 0; k < 4; k++)
                {
                    abyte1[k] = _$1573[k];
                }

                for(int l = 0; l < _$987.length(); l++)
                {
                    abyte1[4 + l] = _$998[l];
                }

                _$1149.write(abyte1);
                _$1126.readFully(abyte5, 0, 4);
                if(_$2528(abyte5, _$1621, 4) || _$2528(abyte5, _$1649, 4) || _$2528(abyte5, _$1680, 4))
                {
                    _$1126.readFully(abyte2, 0, 126);
                    j = abyte2[125] * 256 + abyte2[124];
                } else
                {
                    _$1126.close();
                    _$1149.close();
                    _$1100.close();
                    _$1278 = false;
                    continue; /* Loop/switch isn't completed */
                }
            } else
            {
                if(_$2528(abyte5, _$1745, 4))
                {
                    _$1126.readFully(abyte3, 0, 30);
                    _$1126.close();
                    _$1149.close();
                    _$1100.close();
                    _$1278 = false;
                } else
                {
                    _$1126.close();
                    _$1149.close();
                    _$1100.close();
                    _$1278 = false;
                }
                continue; /* Loop/switch isn't completed */
            }
        }
        catch(IOException ioexception1)
        {
            System.err.println("<err>: Get image welcome message.");
            _$1278 = false;
            continue; /* Loop/switch isn't completed */
        }
        if(j == 0)
        {
            l1 = 5L;
        } else
        if(j == 1)
        {
            l1 = 950L;
        } else
        if(j == 5)
        {
            l1 = 150L;
        } else
        if(j == 7)
        {
            l1 = 100L;
        } else
        if(j == 15)
        {
            l1 = 20L;
        } else
        if(j == 20)
        {
            l1 = 10L;
        }
        _$1077 = false;
_L5:
        if(!_$1213)
        {
            break MISSING_BLOCK_LABEL_1148;
        }
        int j1;
        int i2;
        if(j == 0)
        {
            l1 = 5L;
        } else
        if(++i >= j * 3)
        {
            i = 0;
            if((double)_$1325 < (double)j * 0.69999999999999996D)
            {
                if(l1 > (long)5)
                {
                    l1 -= 2;
                }
            } else
            if((double)_$1325 < (double)j * 0.93000000000000005D)
            {
                if(l1 > (long)5)
                {
                    l1 -= 1;
                }
            } else
            if((double)_$1325 > (double)j * 1.3D)
            {
                l1 += 2;
            } else
            if((double)_$1325 > (double)j * 1.0700000000000001D)
            {
                l1 += 1;
            }
        }
        Thread.currentThread();
        Thread.sleep(l1);
        while(_$1077)
        {
            Thread.currentThread();
            Thread.sleep(2L);
        }
        _$1149.write(_$1437);
        Thread.currentThread();
        Thread.sleep(3L);
        j1 = 0;
        i2 = 0;
_L4:
        if(j1 == 4)
        {
            break MISSING_BLOCK_LABEL_954;
        }
        j1 = _$1126.read(abyte7, 0, 4);
        if(j1 != 4)
        {
            if(++i2 > 15000)
            {
                break MISSING_BLOCK_LABEL_954;
            }
            Thread.currentThread();
            Thread.sleep(1L);
        }
        if(true) goto _L4; else goto _L3
_L3:
        Exception exception;
        exception;
        i2 = 20000;
        if(i2 > 15000)
        {
            break MISSING_BLOCK_LABEL_1148;
        }
        _$1070 = abyte7[3] << 24 & 0xff000000 | abyte7[2] << 16 & 0xff0000 | abyte7[1] << 8 & 0xff00 | abyte7[0] & 0xff;
        if(_$1070 != 0) goto _L6; else goto _L5
_L6:
        int i1;
        i1 = 0;
        i2 = 0;
_L8:
        if(i1 >= _$1070)
        {
            break; /* Loop/switch isn't completed */
        }
        int k1 = _$1126.read(_$1088, i1, 2048);
        if(k1 > 0)
        {
            i1 += k1;
            i2 = 0;
        } else
        if(++i2 > 15000)
        {
            break; /* Loop/switch isn't completed */
        }
        Thread.currentThread();
        Thread.sleep(1L);
        if(true) goto _L8; else goto _L7
        exception;
        i2 = 20000;
_L7:
        if(i2 < 15000)
        {
            _$1077 = true;
        } else
        {
            _$1278 = false;
            break MISSING_BLOCK_LABEL_1148;
        }
          goto _L5
        exception;
        System.err.println("<err>: Getting image connection broken.");
        _$1278 = false;
        _$1325 = 0.0F;
        if(!_$1213)
        {
            flag = false;
            try
            {
                _$1149.write(_$1559);
                _$1126.close();
                _$1149.close();
                _$1100.close();
                _$1278 = false;
            }
            catch(Exception exception1)
            {
                System.err.println(exception1);
            }
        } else
        {
            try
            {
                _$1126.close();
                _$1149.close();
                _$1100.close();
                _$1278 = false;
            }
            catch(Exception exception2)
            {
                System.err.println(exception2);
            }
        }
        if(true) goto _L1; else goto _L2
_L2:
    }

    public int GetRealTimeData()
    {
        byte abyte0[] = new byte[26];
        byte abyte1[] = new byte[44];
        byte abyte2[] = new byte[126];
        byte abyte3[] = new byte[4];
        byte abyte4[] = new byte[30];
        byte abyte5[] = new byte[_$987.length() + 4];
        if(!_$1278)
        {
            return _$1814;
        }
        System.err.println(_$1278);
        if(!_$1254)
        {
            try
            {
                _$1157 = new Socket(_$859, _$897.intValue());
                _$1157.setSoTimeout(_$910.intValue());
                _$1174 = new DataInputStream(_$1157.getInputStream());
                _$1193 = new DataOutputStream(_$1157.getOutputStream());
            }
            catch(Exception exception)
            {
                System.err.println("<err>: Establish realtime data connection.");
                _$1254 = false;
                _$1278 = false;
                int j1 = _$1906;
                return j1;
            }
            try
            {
                _$1174.readFully(abyte3, 0, 4);
                if(_$2528(abyte3, _$1621, 4) || _$2528(abyte3, _$1649, 4) || _$2528(abyte3, _$1680, 4))
                {
                    _$1174.readFully(abyte2, 0, 126);
                    _$1254 = true;
                } else
                if(_$2528(abyte3, _$1710, 4))
                {
                    _$1174.readFully(abyte2, 0, 126);
                    for(int i = 0; i < 4; i++)
                    {
                        abyte5[i] = _$1573[i];
                    }

                    for(int j = 0; j < _$987.length(); j++)
                    {
                        abyte5[4 + j] = _$998[j];
                    }

                    _$1193.write(abyte5);
                    _$1174.readFully(abyte3, 0, 4);
                    if(_$2528(abyte3, _$1621, 4) || _$2528(abyte3, _$1649, 4) || _$2528(abyte3, _$1680, 4))
                    {
                        _$1174.readFully(abyte2, 0, 126);
                        _$1254 = true;
                    } else
                    {
                        _$1174.close();
                        _$1193.close();
                        _$1157.close();
                        _$1254 = false;
                        int k = _$1814;
                        return k;
                    }
                } else
                if(_$2528(abyte3, _$1745, 4))
                {
                    _$1174.readFully(abyte4, 0, 30);
                    _$1174.close();
                    _$1193.close();
                    _$1157.close();
                    _$1254 = false;
                    int l = _$2067;
                    return l;
                } else
                {
                    _$1174.close();
                    _$1193.close();
                    _$1157.close();
                    _$1254 = false;
                    int i1 = _$1884;
                    return i1;
                }
            }
            catch(IOException ioexception)
            {
                System.err.println("<err>: Get real-time data welcome msg.");
                try
                {
                    _$1174.close();
                    _$1193.close();
                    _$1157.close();
                }
                catch(Exception exception2)
                {
                    System.err.println(exception2);
                }
                _$1254 = false;
                int k1 = _$1814;
                return k1;
            }
        }
        try
        {
            _$1193.write(_$1455);
            Thread.currentThread();
            Thread.sleep(5L);
            _$1174.readFully(abyte0, 0, 26);
            _$1174.readFully(abyte1, 0, 44);
            _$1337 = abyte0[4];
            _$1345 = abyte0[5];
            _$1353 = abyte0[8];
            _$1362 = abyte0[9];
            _$1371 = abyte0[13] * 256 + abyte0[12];
            _$1380 = abyte0[15] * 256 + abyte0[14];
            _$1389 = abyte0[17] * 256 + abyte0[16];
            _$1396 = abyte0[19] * 256 + abyte0[18];
            _$1403 = abyte0[21] * 256 + abyte0[20];
            _$1411 = abyte0[23] * 256 + abyte0[22];
            _$1417 = abyte0[25] * 256 + abyte0[24];
            _$1424 = new String(abyte1, "8859_1");
        }
        catch(Exception exception1)
        {
            System.err.println("<err>: Real-time data connection broken.");
            try
            {
                _$1174.close();
                _$1193.close();
                _$1157.close();
            }
            catch(Exception exception3)
            {
                System.err.println(exception3);
            }
            _$1254 = false;
            int l1 = _$1814;
            return l1;
        }
        return _$1809;
    }

    public float GetFrameRate()
    {
        return _$1325;
    }

    public void CalculateFrameRate()
    {
        try
        {
            _$1314 = System.currentTimeMillis();
            float f = _$1314 - _$1302;
            if(f >= (float)1000)
            {
                _$1325 = ((float)_$1290 / f) * (float)1000;
                _$1290 = 0L;
                _$1302 = _$1314;
            }
        }
        catch(Exception exception)
        {
            System.err.println(exception);
        }
    }

    public int Play()
    {
        if(!_$1213)
        {
            _$1213 = true;
            _$1034 = new SI();
            _$1034.start();
            _$1016 = new Thread(this);
            _$1016.start();
        }
        return _$1809;
    }

    public void Stop()
    {
        _$1213 = false;
    }

    public String GetRemoteHost()
    {
        return _$859;
    }

    public int GetRemotePort()
    {
        return _$897.intValue();
    }

    public int SetRemotePort(int i)
    {
        _$897 = new Integer(i);
        return _$1809;
    }

    public int GetTimeout()
    {
        return _$910.intValue();
    }

    public int SetTimeout(int i)
    {
        _$910 = new Integer(i);
        return _$1809;
    }

    public long GetPreviewFrameRate()
    {
        return _$924.longValue();
    }

    public int SetPreviewFrameRate(long l)
    {
        _$924 = new Long(l);
        return _$1809;
    }

    public double GetRotateAngle()
    {
        return _$973.doubleValue();
    }

    public int SetRotateAngle(double d)
    {
        _$973 = new Double(d);
        return _$1809;
    }

    private boolean _$2528(byte abyte0[], byte abyte1[], int i)
    {
        for(int j = 0; j < i; j++)
        {
            if(abyte0[j] != abyte1[j])
            {
                return false;
            }
        }

        return true;
    }

    public int GetIOIn1()
    {
        return _$1337;
    }

    public int GetIOIn2()
    {
        return _$1345;
    }

    public int GetIOOut1()
    {
        return _$1353;
    }

    public int SetIOOut1(int i)
    {
        byte abyte0[] = new byte[6];
        byte abyte1[] = new byte[4];
        byte abyte2[] = new byte[30];
        if(!_$1278)
        {
            return _$1814;
        }
        if(!_$1254)
        {
            int j = GetRealTimeData();
            if(j != _$1809)
            {
                return _$1814;
            }
        }
        try
        {
            abyte0[0] = 48;
            abyte0[1] = 48;
            abyte0[2] = 48;
            abyte0[3] = 50;
            abyte0[4] = 1;
            abyte0[5] = (byte)i;
            _$1193.write(abyte0);
            Thread.currentThread();
            Thread.sleep(3L);
            _$1174.readFully(abyte1, 0, 4);
            if(_$2528(abyte1, _$1728, 4))
            {
                _$1174.readFully(abyte2, 0, 30);
                int k = _$1809;
                return k;
            }
            if(_$2528(abyte1, _$1765, 4))
            {
                _$1174.readFully(abyte2, 0, 30);
                int l = _$1814;
                return l;
            } else
            {
                int i1 = _$1814;
                return i1;
            }
        }
        catch(Exception exception)
        {
            System.err.println(exception);
        }
        int j1 = _$1814;
        return j1;
    }

    public int GetIOOut2()
    {
        return _$1362;
    }

    public int SetIOOut2(int i)
    {
        byte abyte0[] = new byte[6];
        byte abyte1[] = new byte[4];
        byte abyte2[] = new byte[30];
        if(!_$1278)
        {
            return _$1814;
        }
        if(!_$1254)
        {
            int j = GetRealTimeData();
            if(j != _$1809)
            {
                return _$1814;
            }
        }
        try
        {
            abyte0[0] = 48;
            abyte0[1] = 48;
            abyte0[2] = 48;
            abyte0[3] = 50;
            abyte0[4] = 2;
            abyte0[5] = (byte)i;
            _$1193.write(abyte0);
            Thread.currentThread();
            Thread.sleep(3L);
            _$1174.readFully(abyte1, 0, 4);
            if(_$2528(abyte1, _$1728, 4))
            {
                _$1174.readFully(abyte2, 0, 30);
                int k = _$1809;
                return k;
            }
            if(_$2528(abyte1, _$1765, 4))
            {
                _$1174.readFully(abyte2, 0, 30);
                int l = _$1814;
                return l;
            } else
            {
                int i1 = _$1814;
                return i1;
            }
        }
        catch(Exception exception)
        {
            System.err.println(exception);
        }
        int j1 = _$1814;
        return j1;
    }

    public int GetYear()
    {
        return _$1417;
    }

    public int GetMonth()
    {
        return _$1403;
    }

    public int GetDay()
    {
        return _$1411;
    }

    public int GetDate()
    {
        return _$1396;
    }

    public int GetHour()
    {
        return _$1389;
    }

    public int GetMinute()
    {
        return _$1380;
    }

    public int GetSecond()
    {
        return _$1371;
    }

    public String GetTimeString()
    {
        return _$1424;
    }

    public String GetVersion()
    {
        String s = "20011030";
        return s;
    }

    public boolean GetIsConnect()
    {
        return _$1278;
    }

    public void ComputePasswordEncryption20(byte abyte0[], byte abyte1[], byte abyte2[])
    {
        for(int i = 0; i < 20; i++)
        {
            abyte0[i] = abyte1[i];
        }

        for(int j = 0; j < 2; j++)
        {
            for(int k = 0; k < 20; k++)
            {
                abyte0[k] ^= abyte2[k + j * 20];
                byte byte1 = (byte)(abyte0[k] & 0xf);
                byte byte0 = (byte)(abyte0[k] & 0xfffffff0);
                if((abyte0[k] & 1) != 0)
                {
                    byte1 ^= abyte2[k + j * 20 + 40];
                    byte1 &= 0xf;
                }
                if((abyte0[k] & 0x10) != 0)
                {
                    byte0 ^= abyte2[k + j * 20 + 40];
                    byte0 &= 0xf0;
                }
                abyte0[k] = (byte)(byte0 | byte1);
            }

        }

    }









}


/korup
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 14:13 #32
Ok .. har i så lagt filen "xplug$SI.class" på serveren også , så i kan hente den ned ???? ....

(Har lige lavet en test med Hello.class og Hello$internKlasse.class) - og det virker !
Avatar billede =maddog= Nybegynder
01. oktober 2002 - 14:49 #33
Jeg mener at erindre at man også kan pege på en intern klasse via den omkapslene (har FULDSTÆNDIG opgivet at følge med i de par tusind linjer kode der flimrer fordi), men skal en sådan ikke erklæres private? og vil det ikke give et problem når den skal udenfor scope af den omkapslene klasse og loades dynamisk?
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 19:33 #34
Jeg ved så meget, at en intern klasse ikke nødvendigvis behøver at være private :-) ...

men jeg glæder mig til at høre, om korup har fået det til at virke...
Avatar billede =maddog= Nybegynder
01. oktober 2002 - 20:17 #35
Uha. Jeg vil ikke mase på eller noget, men jeg har altså et problem med at danne en instans af en indre klasse uden det omkapslene klasse. Det her skulle gerne illustrere det

public class TestScope {
    public static void main(String[] args)     {
        // Outer.Inner inner = new Outer.Inner();  -- forkastes af kompileren pga scope
        Outer outer = new Outer();
        Outer.Inner inner = outer. new Inner(); // -- går hvis vi har en instans af Outer i scope
        System.out.println("Her er den varibel vi skulle have i scope: "+inner.getInner());
        System.out.println("Her er den varibel, der giver problemer med scope: "+inner.getOuter());
    }
}

class Outer {
    private int outer = 0;
    public Outer()     {}
   
    public class Inner {
        private int inner = 1;
        public Inner()    {}

        public int getInner() {
            return inner;
        }
       
        public int getOuter() {
            return outer;
        }
    }
}

Jeg vil MEGET gerne irettesættes her. Det strider bare lidt mod min logik. Hvorvidt dette er det fundamentale problem kan jeg altså ikke overskue. Ekspertens format egner sig ikke rigtig til 4 kilometer kode....
Avatar billede bearhugx Nybegynder
01. oktober 2002 - 20:26 #36
=maddog= .. Du masser skam ikke på ... jeg fik jo pointsne rimligt hurtigt - og er stadig aktiv i dette spm...

lige præcis statementet
  Outer.Inner inner = outer. new Inner();
fatter jeg simpelthen ikke - virker det ???? (du behøver ikke at svare - jeg tester det lige selv :-)

/Søren
Avatar billede =maddog= Nybegynder
01. oktober 2002 - 20:39 #37
:-)
Jamen det virker fint. Du kan godt se at problemet ligger i at outer, der er private aldrig må forlade scope af klassen Outer. Derfor kan du ikke lave en instans af Inner uden en instans af Outer i scope. Ellers ville du ikke kunne 'adressere' varibelen outer. Så er det for den sags skyld ligemeget om du gør det som Outer$Inner så vidt jeg da lige kan se.
Men jeg skal gerne indrømme at vi er ude i randzonen af min viden.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester