public void start(String dest, long _maxSize){
        if(_maxSize < 0)
        {
            maxSize = estimateMaxCapacity();
            System.out.println("Maximum estimated size: " + maxSize);
        }
        else
        {
            maxSize = _maxSize;
        }
        try {
            // send request
            byte[] rb = new byte[12];
            InetAddress address = InetAddress.getByName(dest);
            System.out.println("Going to connect.");
            Socket socket = new Socket(address,4466);
            System.out.println("Connected. Opening stream");
            BufferedInputStream in = new BufferedInputStream(socket.getInputStream());
            System.out.println("Stream open.");
            
            // Open output stream and send maxSize
            BufferedOutputStream out = new BufferedOutputStream(socket.getOutputStream());
            byte[] setSize = new byte[1024];
            ByteBuffer bb = ByteBuffer.wrap(setSize);
            bb.putLong(maxSize);
            out.write(setSize);
            out.flush();
            
            // Create read buffers and read stream till it closes
            byte[] readbuffer = new byte[120];
            byte[] buffer = new byte[1100];
            byte[] processBuffer = new byte[960];
            int r = 0;
            boolean done = false;
            int bufferLength = 0;
            while(!done)
            {
                while(bufferLength < 960)
                {
                    r = in.read(readbuffer);
                    System.arraycopy(readbuffer, 0, buffer, bufferLength, r);
                    bufferLength += r;
                }
                System.arraycopy(buffer, 0, processBuffer, 0, 960);
                for(int j=960;j<bufferLength;j++)
                {
                    buffer[j-960] = buffer[j];
                }
                bufferLength = bufferLength-960;
                done = processData(processBuffer);
            }
            System.out.println("Done");
            socket.close();
        } 
        catch (Exception ex) 
        {
            System.err.println("An error has happened!");
            Logger.getLogger(DistributedLinkSetClient.class.getName()).log(Level.SEVERE, null, ex);
        }
    }