private boolean sendPost(Request req) {
        byte[] sending_data = null;
        Crypt Crypt = null;
        int status;
        //\bh̐ݒ
        PostMethod method = new PostMethod("http://" + ServerForHost +
                                           "/index.cgi");
        method.setRequestHeader("User-Agent", "Haduki");
        method.setRequestHeader("Connection", "close");
        //Í̐ݒ
        Crypt = LoginInfo.getCrypt();
        Crypt.startCrypt();
        //Mf[^̐ݒ
        sending_data = req.getSendingData();
        method.setRequestEntity(
                new ByteArrayRequestEntity(sending_data, "image/x-png"));
        try {
            try {
                //\bhs
                status = Client.executeMethod(method);
            } catch (IOException ex2) {
                ex2.printStackTrace();
                req.setConnected(false);
                req.signalReceived(false);
                return false;
            }
            //ڑ́AoB
            req.setConnected(true);
            //ʂ擾
            if (status != HttpStatus.SC_OK) {
                req.signalReceived(false);
                return false;
            }
            //o̓Xg[
            if (!initInputStream(method)) {
                req.signalReceived(false);
                return false;
            }
            //f[^擾
            int size = 0;
            int total_size = 0;
            boolean signal = false;
            OutputStream req_os = req.getRecvOutputStream();
            try {
                while ((size = Crypt.inputData(DataIn, Buffer, 0,
                                               Request.BUFF_SIZE)) > 0) {
                    total_size += size;
                    if(req.isCanceled()){
                        return false;
                    }
                    try {
                        req_os.write(Buffer, 0, size);
                        if (!signal && total_size >= 4) {
                            req.signalReceived(true);
                            signal = true;
                        }
                    } catch (IOException ex) {
                        ex.printStackTrace();
                        return false;
                    }
                    req_os.flush();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            } finally {
                if (!signal) {
                    req.signalReceived(false);
                }
                if (total_size > 0) {
                    Crypt.nextStream();
                }
                try {
                    req_os.close();
                    DataIn.close();
                } catch (IOException ex1) {
                    ex1.printStackTrace();
                    return false;
                }
            }
            //ǂ
            return true;
        } finally {
            method.releaseConnection();
        }
    }