亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? socketthread.java

?? 這是一個能夠?qū)崿F(xiàn)文件傳輸?shù)挠胘ava開發(fā)的源程序
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:

    //解包
    private void upPackage(byte[] data) {
        ByteArrayInputStream bias = new ByteArrayInputStream(data);
        DataInputStream biasDis = new DataInputStream(bias);
        int type = 0;
        try {
            type = biasDis.readInt();
        } catch (SocketTimeoutException ex) {
            setError("網(wǎng)絡(luò)超時!");
        } catch (IOException ex1) {
            setError("對方取消了文件傳輸或網(wǎng)絡(luò)錯誤!");
        }
        switch (type) {
        case PACKAGE_TYPE_FILENAME: {
            try {
                int length = biasDis.readInt();
                bias.read(dataBuf,0,length);
                fileName = new String(dataBuf,0,length);
                fileSize = biasDis.readLong();
                length = biasDis.readInt();
                if (length !=-1) {
                    bias.read(dataBuf,0,length);
                    message = new String(dataBuf,0,length);
                }
                fileTransStatus = FILE_TRANS_STATUS_WAITFORCONFIRM;
            } catch (SocketTimeoutException ex) {
                setError("網(wǎng)絡(luò)超時!");
            } catch (IOException ex) {
                setError("對方取消了文件傳輸或網(wǎng)絡(luò)錯誤!");
            }
            break ;
        }
        case PACKAGE_TYPE_CONTEXT: {
            try {
                int flag = biasDis.readInt();
                int length = biasDis.readInt();
                bias.read(dataBuf,0,length);
                writeToFile(dataBuf,0,length);
                transFileLength += length;
                if (flag == 0) {
                    fileTransStatus = FILE_TRANS_STATUS_SUCCESS;
                    stopThread();
                }
            } catch (SocketTimeoutException ex) {
                setError("網(wǎng)絡(luò)超時!");
            } catch (IOException ex) {
                setError("對方取消了文件傳輸或網(wǎng)絡(luò)錯誤!");
            }
            break ;
        }
        }
    }

    //發(fā)送文件
    private void sendFile() {
        int length;
        switch (fileTransStatus) {
        case FILE_TRANS_STATUS_FILENAME: {
            try {
                byte [] buf;
                fileName = aFile.getName();
                fileSize = aFile.length();
                buf = doPackage(null, 0);
                writeToSocket(buf);
                fileTransStatus = FILE_TRANS_STATUS_WAITFORCONFIRM;
            } catch (IOException ex) {
                setError("對方取消了文件傳輸或網(wǎng)絡(luò)錯誤!");
            }
            break ;
        }
        case FILE_TRANS_STATUS_WAITFORCONFIRM: {
            int flag;
            try {
                flag = readFromSocket();
                if (flag == 0) {
                    setError("對方拒絕了文件傳輸!");
                } else {
                    fileTransStatus = FILE_TRANS_STATUS_CONTEXT;
                    transFileLength = readLongFromSocket();
                    fDis.skip(transFileLength);
                    aSocket.setSoTimeout(30000);
                }
            } catch (SocketTimeoutException ex) {
                setError("網(wǎng)絡(luò)超時!");
            } catch (IOException ex) {
                setError("對方取消了文件傳輸或網(wǎng)絡(luò)錯誤!");
            }
            break ;
        }
        case FILE_TRANS_STATUS_CONTEXT: {
            length = readFromFile(dataBuf,0,CACHE_SIZE);
            try {
                writeToSocket(doPackage(dataBuf, length));
                transFileLength += length;
                if (transFileLength >= fileSize) {
                    fileTransStatus = FILE_TRANS_STATUS_SUCCESS;
                    Thread.sleep(1000);
                    stopThread();
                }
            } catch (IOException ex) {
                setError("對方取消了文件傳輸或網(wǎng)絡(luò)錯誤!");
            } catch (InterruptedException ex1) {

            }
            count++;
            if(count==2){
                //stopThread();
            }
            break ;
        }
        }
    }

    //接收文件
    private void receiveFile() {
        if (fileTransStatus == FILE_TRANS_STATUS_CONTEXT ||
            fileTransStatus == FILE_TRANS_STATUS_FILENAME) {
            try {
                int length = dis.readInt();
                int len=dis.read(dataBuf,0,length);
                while(len<length){
                    len=len+dis.read(dataBuf,len,length-len);
                }
                    upPackage(dataBuf);
            } catch (SocketTimeoutException ex) {
                setError("網(wǎng)絡(luò)超時!");
                ex.printStackTrace();
            } catch (IOException ex) {
                setError("對方取消了文件傳輸或網(wǎng)絡(luò)錯誤!");
            }
        } else if (fileTransStatus == FILE_TRANS_STATUS_CANCELTRANS) {
            try {
                doPackage(null, 0);
            } catch (IOException ex1) {
            }
            setError("已取消文件傳輸!");
        }
    }

    //確認(rèn)是否接收文件
    public void confirmReceiveFile(boolean flag, String fileName, long off) {
        if (flag) {
            try {

                writeToSocket(1);
                if (off >0) {
                    writeToSocket(off);
                } else {
                    writeToSocket(0L);
                    File aFile=new File(fileName);
                    if(aFile.exists()){
                        System.out.println("*");
                        aFile.delete();
                    }
                }
                raf = new RandomAccessFile(fileName, "rws");
                this.fileName = fileName;
                fileTransStatus = FILE_TRANS_STATUS_CONTEXT;
                fileTransed=true;
                raf.seek(off);
            } catch (FileNotFoundException ex) {
                setError("創(chuàng)建文件錯誤!");
            } catch (IOException ex) {
                setError("對方取消了文件傳輸或網(wǎng)絡(luò)錯誤!");
            }
            transFileLength = off;
        } else {
            try {
                writeToSocket(0);
                writeToSocket(0L);
            } catch (IOException ex) {
                setError("對方取消了文件傳輸或網(wǎng)絡(luò)錯誤!");
            }
        }
    }


//返回已傳輸字節(jié)數(shù)
    public long getTransFileLength() {
        return transFileLength;
    }

//設(shè)置錯誤消息
    public void setError(String errorMessage) {
        fileTransStatus = FILE_TRANS_STATUS_FAIL;
        this.errorMessage = errorMessage;
        if (!fileSender&&fileTransed) {
            File tmpFile = new File(fileName + ".tmp");
            try {
                DataOutputStream dos = new DataOutputStream(new
                        FileOutputStream(
                                tmpFile));
                dos.writeLong(transFileLength);
                dos.writeLong(fileSize);
                dos.close();
            } catch (IOException ex) {
            }
        }
        stopThread();
    }


//返回錯誤消息
    public String getErrorMessage() {
        return errorMessage;
    }

//返回傳輸狀態(tài)
    public int getStatus() {
        return fileTransStatus;
    }

//是否是文件發(fā)送者
    public boolean isFileSender() {
        return fileSender;
    }

    public void cancelTrans() {
        if (fileTransStatus == FILE_TRANS_STATUS_WAITFORCONFIRM) {
            confirmReceiveFile(false, null, 0);
        }
        setError("已取消文件傳輸!");
    }

    public String getMessage() {
        return message;
    }

    public String getIP() {
        return IP;
    }

    public int getPort() {
        return port;
    }

    public String getFileName() {
        if (fileName.length()>0) {
            return fileName.substring(0,fileName.lastIndexOf('.')) +
                    fileName.substring(fileName.lastIndexOf('.'),
                                       fileName.length());
        } else {
            return fileName;
        }
    }

    public String getFileTransMessage(){
        if(fileSender){
            return "文件發(fā)送 目標(biāo)IP: "+getIP()+" 端口:"+getPort();
        }
        else{
            return "文件接收 來自: "+getIP();
        }
    }

    private void jbInit() throws Exception {
    }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区四区在线观看| 在线观看日韩一区| 国产成人精品1024| 国产成人超碰人人澡人人澡| 91美女蜜桃在线| 不卡视频一二三| 91麻豆精品国产自产在线| 欧美丰满少妇xxxxx高潮对白 | 欧美日韩一区成人| 91精品国产综合久久精品| 国产欧美一区二区精品忘忧草| 亚洲女性喷水在线观看一区| 蜜桃视频一区二区三区| 99久久综合国产精品| 91麻豆精品91久久久久同性| 2023国产精华国产精品| 日韩激情中文字幕| 精品视频一区二区三区免费| 久久先锋资源网| 亚洲国产一区视频| 国产xxx精品视频大全| 欧美性xxxxxxxx| 国产欧美日韩卡一| 蜜桃av一区二区三区| 欧洲一区二区av| 亚洲欧美综合色| 亚洲免费观看高清| 一区二区三区欧美在线观看| jiyouzz国产精品久久| 99精品国产视频| 国产亚洲精品中文字幕| 一区二区三区在线视频免费观看| 在线亚洲+欧美+日本专区| 精品电影一区二区三区| 另类小说色综合网站| av成人免费在线| 国产网站一区二区| 亚洲美女精品一区| 午夜视黄欧洲亚洲| 精品综合久久久久久8888| 美女视频网站久久| 成人激情小说网站| 国模套图日韩精品一区二区| 久久久久久亚洲综合| www.久久精品| 国产在线精品一区二区三区不卡| 久久久综合激的五月天| 亚洲精品福利视频网站| 悠悠色在线精品| 精品国产制服丝袜高跟| 欧美日韩国产一区二区三区地区| 国产精品护士白丝一区av| 91片在线免费观看| 亚洲国产视频一区二区| 日韩欧美国产午夜精品| 精品亚洲国产成人av制服丝袜| 欧美精品一区二区三区高清aⅴ| 懂色av中文字幕一区二区三区| 中文字幕欧美国产| 色88888久久久久久影院按摩| 亚洲国产cao| 日韩精品一区二区三区四区 | 亚洲国产岛国毛片在线| 一本到三区不卡视频| 丝瓜av网站精品一区二区| 精品sm捆绑视频| 91成人免费在线视频| 老司机午夜精品| 亚洲女性喷水在线观看一区| 欧美成人bangbros| 97精品电影院| 久久不见久久见免费视频7 | 久久一留热品黄| 91高清视频免费看| 国产精品91xxx| 亚洲v精品v日韩v欧美v专区| 久久久久久久综合| 精品视频1区2区3区| 成人手机在线视频| 蜜桃一区二区三区四区| 成人免费一区二区三区在线观看 | 亚洲国产精华液网站w| 欧美三级午夜理伦三级中视频| 国产成人精品综合在线观看| 亚洲福利视频一区二区| av亚洲精华国产精华| 免费成人av资源网| 日韩毛片精品高清免费| 亚洲精品一区二区在线观看| 欧美日韩一区中文字幕| 99久久精品费精品国产一区二区| 久久99深爱久久99精品| 五月激情综合婷婷| 亚洲精品亚洲人成人网在线播放| 久久久一区二区| 亚洲女人的天堂| 另类小说图片综合网| 亚洲成人在线免费| 亚洲免费资源在线播放| 欧美激情中文不卡| 精品欧美一区二区久久| 日韩视频免费观看高清完整版 | 亚洲久草在线视频| 国产三级精品在线| 久久久综合网站| 精品国产不卡一区二区三区| 日韩美一区二区三区| 欧美久久免费观看| 欧美高清视频一二三区 | 亚洲一区二区三区在线| 亚洲欧美日韩系列| 亚洲欧美日韩一区二区 | 国产人成亚洲第一网站在线播放| 日韩一区二区中文字幕| 欧美福利视频导航| 欧美一区二区三区色| 欧美一区二区网站| 91麻豆精品国产自产在线 | 国产精品天干天干在线综合| 久久综合色之久久综合| 久久这里只精品最新地址| 欧美精品一区二区三区高清aⅴ | 国产成人欧美日韩在线电影| 国产麻豆视频精品| 粉嫩13p一区二区三区| 99久久精品免费| 色综合中文综合网| 日韩极品在线观看| 精品一区二区影视| 国产电影一区在线| 99久久精品久久久久久清纯| 欧美曰成人黄网| 91超碰这里只有精品国产| 777奇米四色成人影色区| 欧美一二三四区在线| 久久综合成人精品亚洲另类欧美| 久久精品亚洲麻豆av一区二区| 国产精品久久久久久久午夜片| 一区二区三区免费网站| 天天色综合天天| 国产一区在线精品| 成人福利视频网站| 欧美三级在线播放| 久久久久久一二三区| 日韩毛片精品高清免费| 青青草伊人久久| 成人一区在线看| 51精品久久久久久久蜜臀| 欧美电影精品一区二区| 亚洲欧洲色图综合| 日韩和欧美一区二区三区| 国产成人午夜精品影院观看视频| 99riav久久精品riav| 91精品国产品国语在线不卡| 国产欧美一区二区精品性色| 亚洲一区二区在线免费看| 国产主播一区二区| 91老司机福利 在线| 91精品国产色综合久久久蜜香臀| 国产精品素人视频| 免费成人在线观看视频| 99精品视频在线观看| 日韩欧美国产高清| 一区二区三区视频在线看| 精彩视频一区二区| 欧美日韩中字一区| 日本一区二区三区电影| 蜜桃av一区二区三区| 欧美亚州韩日在线看免费版国语版| 精品国产乱码久久久久久老虎| 亚洲一区二区精品3399| 国产成人丝袜美腿| 欧美一区永久视频免费观看| 国产精品短视频| 国内欧美视频一区二区| 欧美人动与zoxxxx乱| 1000精品久久久久久久久| 国产呦精品一区二区三区网站| 91精品欧美一区二区三区综合在| 综合久久久久久久| 成人性生交大片免费看中文网站| 日韩一区二区三区三四区视频在线观看 | 国内成+人亚洲+欧美+综合在线| 在线视频你懂得一区二区三区| 国产三级欧美三级| 国内欧美视频一区二区| 欧美一级生活片| 亚洲成人福利片| 欧美自拍偷拍午夜视频| 亚洲三级电影全部在线观看高清| 国产一区二区影院| 欧美大片一区二区| 免费一级欧美片在线观看| 欧美日韩一区二区三区四区| 一区二区三区欧美| 欧美亚州韩日在线看免费版国语版| 国产一区二区三区蝌蚪| 精品国产123| 国产乱码字幕精品高清av | 尤物在线观看一区|