<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    夢想飛翔

    自強不息
    posts - 111, comments - 30, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Java實現Socket發送和接收文件的代碼

    Posted on 2009-09-10 20:34 love1563 閱讀(1004) 評論(0)  編輯  收藏
    /** 
     * 發送端 
     */ 
    class Client {  
       
        // 網上抄來的,將 int 轉成字節  
        public static byte[] i2b(int i) {  
            return new byte[]{  
                    (byte) ((i >> 24) & 0xFF),  
                    (byte) ((i >> 16) & 0xFF),  
                    (byte) ((i >> 8) & 0xFF),  
                    (byte) (i & 0xFF)  
            };  
        }  
       
        /** 
         * 發送文件。文件大小不能大于 {@link Integer#MAX_VALUE} 
         * 
         * @param hostname 接收端主機名或 IP 地址 
         * @param port     接收端端口號 
         * @param filepath 文件路徑 
         * 
         * @throws IOException 如果讀取文件或發送失敗 
         */ 
        public void sendFile(String hostname, int port, String filepath) throws IOException {  
            File file = new File(filepath);  
            FileInputStream is = new FileInputStream(filepath);  
       
            Socket socket = new Socket(hostname, port);  
            OutputStream os = socket.getOutputStream();  
       
            try {  
                int length = (int) file.length();  
                System.out.println("發送文件:" + file.getName() + ",長度:" + length);  
       
                // 發送文件名和文件內容  
                writeFileName(file, os);  
                writeFileContent(is, os, length);  
            } finally {  
                os.close();  
                is.close();  
            }  
        }  
       
        // 輸出文件內容  
        private void writeFileContent(InputStream is, OutputStream os, int length) throws IOException {  
            // 輸出文件長度  
            os.write(i2b(length));  
       
            // 輸出文件內容  
            byte[] buffer = new byte[4096];  
            int size;  
            while ((size = is.read(buffer)) != -1) {  
                os.write(buffer, 0, size);  
            }  
        }  
       
        // 輸出文件名  
        private void writeFileName(File file, OutputStream os) throws IOException {  
            byte[] fn_bytes = file.getName().getBytes();  
       
            os.write(i2b(fn_bytes.length));         // 輸出文件名長度  
            os.write(fn_bytes);    // 輸出文件名  
        }  

    本文來自: IT知道網(http://www.itwis.com) 詳細出處參考:http://www.itwis.com/html/java/j2se/20090304/3503_2.html

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲人成7777| 亚洲精品在线播放视频| 亚洲中文字幕无码久久综合网| 国产AV无码专区亚洲AV漫画 | 亚洲乱码日产一区三区| 亚洲AV成人片色在线观看| 亚洲视频中文字幕在线| 中文字幕精品三区无码亚洲 | 日本特黄特色AAA大片免费| 三年片免费高清版| 99热这里有免费国产精品| 成年轻人网站色免费看| 全黄a免费一级毛片人人爱| 亚洲成在人线av| 亚洲熟妇AV一区二区三区浪潮 | 国产免费A∨在线播放| 无码免费一区二区三区免费播放 | 一二三四视频在线观看中文版免费 | 黄页免费的网站勿入免费直接进入| 成人免费视频试看120秒| 国产成人亚洲综合无码| 91亚洲自偷手机在线观看| 亚洲丶国产丶欧美一区二区三区| 国产精品小视频免费无限app| 亚洲免费中文字幕| 亚洲AV无码乱码在线观看性色扶 | 亚洲伦另类中文字幕| 亚洲AV无码成人网站在线观看| 中文在线免费观看| 一二三四在线观看免费高清中文在线观看| 亚洲A∨午夜成人片精品网站| 亚洲视频一区调教| 羞羞视频网站免费入口| 91高清免费国产自产拍2021| 国产午夜免费秋霞影院| 亚洲综合一区二区精品导航| 国产亚洲美女精品久久久久| 114级毛片免费观看| 亚洲国产日韩在线观频| 亚洲av永久无码精品三区在线4| 2022国内精品免费福利视频|