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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ftpclient.java

?? 一個FTP瀏覽器的源代碼,算是不錯的啦,很有用的
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
import java.net.*;
import java.io.*;
import java.util.*;

class FtpClient {
    static final boolean debug = false;
    public static final int FTP_PORT = 21;  // ftp的端口
    static int FTP_SUCCESS = 1;
    static int FTP_TRY_AGAIN = 2;
    static int FTP_ERROR = 3;
    // 數據傳輸套接字
    private Socket  dataSocket = null;
    private boolean replyPending = false;
    private boolean binaryMode = false;
    private boolean passiveMode = false;
    String user = null;  // 登錄用的用戶名
    String password = null;  // 登錄用的密碼
    String command;  // 最近一次命令
    int lastReplyCode;  // 最近的響應信息
    public String welcomeMsg; // 服務器的歡迎信息
    // 從服務器返回的響應字符串對象
    protected Vector serverResponse = new Vector(1);
    protected Socket serverSocket = null; // 與服務器通信的套接字
    public PrintWriter  serverOutput;  
    public InputStream  serverInput;  // 從服務器讀取響應的緩沖流

    /** 返回服務器連接的狀態 */
    public boolean serverIsOpen() {
        return serverSocket != null;
    }

	/** 設置為被動模式 */
	public void setPassive(boolean mode) {
		passiveMode = mode;
	}
	
	/** 讀取服務器的響應信息 */
    public int readServerResponse() throws IOException {
        StringBuffer replyBuf = new StringBuffer(32);
        int c;
        int continuingCode = -1;
        int code = -1;
        String response;
        if (debug) System.out.println("readServerResponse start");
        try{
        while (true) {
            if (debug) System.out.println("readServerResponse outer while loop: "+ serverInput.available());    
            while ((c = serverInput.read()) != -1) {
               if (c == '\r') {
                    if ((c = serverInput.read()) != '\n')
                        replyBuf.append('\r');
                }
                replyBuf.append((char)c);               
                if (c == '\n')
                    break;                
            }
            if (debug) System.out.println("Now past inner while loop");
            response = replyBuf.toString();
            replyBuf.setLength(0);
            if (debug) {
                System.out.print(response);
            }
            try {
                code = Integer.parseInt(response.substring(0, 3));
            } catch (NumberFormatException e) {
                code = -1;
            } catch (StringIndexOutOfBoundsException e) {
                // 此行不存在響應碼,循環跳到下一次
                continue;
            }
            serverResponse.addElement(response);
            if (continuingCode != -1) {
                /* we've seen a XXX- sequence */
                if (code != continuingCode ||
                    (response.length() >= 4 && response.charAt(3) == '-')) {
                    continue;
                } else {
                    continuingCode = -1; // 到達程序的結尾
                    break;
                }
            } else if (response.length() >= 4 && response.charAt(3) == '-') {
                continuingCode = code;
                continue;
            } else {
                break;
            }
        }
        }catch(Exception e){e.printStackTrace();}
        if (debug) System.out.println("readServerResponse done");
        return lastReplyCode = code;
    }

    /** 發送命令 <i>cmd</i> 給服務器 */
    public void sendServer(String cmd) {
        if (debug) System.out.println("sendServer start");
        serverOutput.println(cmd);
        if (debug) System.out.println("sendServer done");

    }
   
    /** 返回服務器的所有響應字符串 */
    public String getResponseString() {
        String s = new String();
        for(int i = 0;i < serverResponse.size();i++) {
           s+=serverResponse.elementAt(i);
        }
        serverResponse = new Vector(1);
        return s;
    }

    /** 獲取響應字符串 */
   public String getResponseStringNoReset() {
        String s = new String();
        for(int i = 0;i < serverResponse.size();i++) {
           s+=serverResponse.elementAt(i);
        }
        return s;
    }
   
    /** 發送 QUIT 命令給服務器并關閉連接 */
    public void closeServer() throws IOException {
        if (serverIsOpen()) {
            issueCommand("QUIT");
        if (! serverIsOpen()) {
              return;
            }
            serverSocket.close();
            serverSocket = null;
            serverInput = null;
            serverOutput = null;
        }
    }

    protected int issueCommand(String cmd) throws IOException {
        command = cmd;
        int reply;
        if (debug) System.out.println(cmd);
        if (replyPending) {
            if (debug) System.out.println("replyPending");
            if (readReply() == FTP_ERROR)
                System.out.print("Error reading pending reply\n");
        }
        replyPending = false;
        do {
            sendServer(cmd);
            reply = readReply();
            if (debug) System.out.println("in while loop of issueCommand method");
        } while (reply == FTP_TRY_AGAIN);
        return reply;
    }

    // 檢測命令
    protected void issueCommandCheck(String cmd) throws IOException {
        if (debug) System.out.println("issueCommandCheck");
        if (issueCommand(cmd) != FTP_SUCCESS) {            
            throw new FtpProtocolException(cmd);
            }
    }

    /** 讀取返回數據 */
    protected int readReply() throws IOException {
		lastReplyCode = readServerResponse();
		switch (lastReplyCode / 100) {
		case 1:
			replyPending = true;

		case 2:// 這個case用來以后擴展功能

		case 3:
			return FTP_SUCCESS;

		case 5:
			if (lastReplyCode == 530) {
				if (user == null) {
					throw new FtpLoginException("Not logged in");
				}
				return FTP_ERROR;
			}
			if (lastReplyCode == 550) {
				if (!command.startsWith("PASS"))
					throw new FileNotFoundException(command);
				else
					throw new FtpLoginException("Error: Wrong Password!");
			}
		}
		return FTP_ERROR;
	}

	// 打開數據連接
	protected Socket openDataConnection(String cmd) throws IOException {
		ServerSocket portSocket = null;
		String portCmd;
		InetAddress myAddress = InetAddress.getLocalHost();
		byte addr[] = myAddress.getAddress();
		int shift;
		String ipaddress;
		int port = 0;
		IOException e;
		if (this.passiveMode) {
			// 首先嘗試被動模式傳輸
			try { 
				getResponseString();
				if (issueCommand("PASV") == FTP_ERROR) {
					e = new FtpProtocolException("PASV");
					throw e;
				}
				String reply = getResponseStringNoReset();
				reply = reply.substring(reply.lastIndexOf("(") + 1, reply
						.lastIndexOf(")"));
				StringTokenizer st = new StringTokenizer(reply, ",");
				String[] nums = new String[6];
				int i = 0;
				while (st.hasMoreElements()) {
					try {
						nums[i] = st.nextToken();
						i++;
					} catch (Exception a) {
						a.printStackTrace();
					}
				}
				ipaddress = nums[0] + "." + nums[1] + "." + nums[2] + "."
						+ nums[3];
				try {
					int firstbits = Integer.parseInt(nums[4]) << 8;
					int lastbits = Integer.parseInt(nums[5]);
					port = firstbits + lastbits;
				} catch (Exception b) {
					b.printStackTrace();
				}
				if ((ipaddress != null) && (port != 0)) {
					dataSocket = new Socket(ipaddress, port);
				} else {
					e = new FtpProtocolException("PASV");
					throw e;
				}
				if (issueCommand(cmd) == FTP_ERROR) {
					e = new FtpProtocolException(cmd);
					throw e;
				}
			} catch (FtpProtocolException fpe) { 
				portCmd = "PORT ";
				// 附加host地址
				for (int i = 0; i < addr.length; i++) {
					portCmd = portCmd + (addr[i] & 0xFF) + ",";
				}
				try {
					portSocket = new ServerSocket(20000);
					// 附加端口
					portCmd = portCmd
							+ ((portSocket.getLocalPort() >>> 8) & 0xff) + ","
							+ (portSocket.getLocalPort() & 0xff);
					if (issueCommand(portCmd) == FTP_ERROR) {
						e = new FtpProtocolException("PORT");
						throw e;
					}
					if (issueCommand(cmd) == FTP_ERROR) {
						e = new FtpProtocolException(cmd);
						throw e;
					}
					dataSocket = portSocket.accept();
				} finally {
					if (portSocket != null)
						portSocket.close();
				}
				dataSocket = portSocket.accept();
				portSocket.close();
			}
		}
		else { // 端口傳送
			portCmd = "PORT ";
			// 附加host地址
			for (int i = 0; i < addr.length; i++) {
				portCmd = portCmd + (addr[i] & 0xFF) + ",";
			}
			try {
				portSocket = new ServerSocket(20000);
				// 附加端口號
				portCmd = portCmd + ((portSocket.getLocalPort() >>> 8) & 0xff)
						+ "," + (portSocket.getLocalPort() & 0xff);
				if (issueCommand(portCmd) == FTP_ERROR) {
					e = new FtpProtocolException("PORT");
					throw e;
				}
				if (issueCommand(cmd) == FTP_ERROR) {
					e = new FtpProtocolException(cmd);
					throw e;
				}
				dataSocket = portSocket.accept();
			} finally {
				if (portSocket != null)
					portSocket.close();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆国产精品官网| 激情av综合网| 欧美一级日韩一级| 99精品视频一区| 国产乱人伦精品一区二区在线观看| 偷窥少妇高潮呻吟av久久免费| 中文字幕第一区二区| 精品国产伦一区二区三区观看方式| 精品污污网站免费看| 欧美中文一区二区三区| 欧美做爰猛烈大尺度电影无法无天| 日韩免费高清av| 26uuu精品一区二区| 国产日韩欧美制服另类| 中文字幕久久午夜不卡| 日本伊人午夜精品| 韩国成人福利片在线播放| 欧美色区777第一页| 中文字幕一区免费在线观看| 国产精品乱人伦| 亚洲综合成人在线| 亚洲妇熟xx妇色黄| 九九国产精品视频| av高清久久久| 欧美日韩一区二区三区四区| 国产精品国产三级国产专播品爱网| 亚洲精品免费一二三区| 日韩电影在线观看一区| 在线视频一区二区三| 国产欧美一区在线| 国产成人在线网站| 91国在线观看| 精品少妇一区二区三区在线播放| 国产日韩精品一区二区三区在线| 国内久久婷婷综合| 久久久久久久精| 亚洲精品自拍动漫在线| 91麻豆6部合集magnet| 日韩一区二区三区免费观看 | 久久精品国产亚洲aⅴ| 豆国产96在线|亚洲| 欧美丰满嫩嫩电影| 日本一区二区视频在线| 国产mv日韩mv欧美| 国产精品国产精品国产专区不蜜| a亚洲天堂av| 一区二区三区不卡视频在线观看 | 亚洲精品videosex极品| 色香蕉成人二区免费| 26uuu欧美| 国产91露脸合集magnet| 国产精品久久精品日日| 欧美性极品少妇| 日韩一区日韩二区| 欧美亚洲自拍偷拍| 蜜桃久久精品一区二区| 亚洲精品一区二区精华| 不卡影院免费观看| 2022国产精品视频| 成人av网在线| 亚洲成人免费视频| 91精品福利视频| 久久精品国产99久久6| 国产拍欧美日韩视频二区| 欧美伊人久久大香线蕉综合69 | 亚洲电影一级片| 精品国产a毛片| 色屁屁一区二区| 久久国产福利国产秒拍| 中文字幕一区二区三区精华液| 欧美视频一区二区在线观看| 韩国成人福利片在线播放| 亚洲美女一区二区三区| 97久久精品人人做人人爽| 婷婷成人综合网| 中文在线资源观看网站视频免费不卡| 91视频在线观看| 国产一区二区三区免费看| 精品国产免费一区二区三区四区| 91在线一区二区三区| 久久国产精品一区二区| 日韩毛片在线免费观看| 色欧美片视频在线观看| 美国三级日本三级久久99 | 久久久久久久性| 欧美日韩在线不卡| 成人精品国产免费网站| 九九视频精品免费| 五月天国产精品| 亚洲乱码国产乱码精品精小说 | 视频一区在线播放| 欧美剧情电影在线观看完整版免费励志电影| 精品亚洲国产成人av制服丝袜| 亚洲乱码国产乱码精品精可以看| 日韩精品一区二区在线| 欧美日韩精品综合在线| 热久久一区二区| 久久久亚洲精华液精华液精华液 | 日韩免费观看高清完整版| 色吊一区二区三区| av在线这里只有精品| 国产乱码精品一区二区三区忘忧草| 亚洲v日本v欧美v久久精品| 日本一区二区综合亚洲| 国产色产综合产在线视频| 99re这里只有精品6| 成人av网站在线| 成人免费福利片| 肉肉av福利一精品导航| 一区二区不卡在线视频 午夜欧美不卡在| 久久九九影视网| 精品国产一二三区| 久久久无码精品亚洲日韩按摩| 日韩欧美专区在线| 8x8x8国产精品| 成人午夜视频网站| 成人av在线电影| 国产v综合v亚洲欧| 懂色一区二区三区免费观看| 国产一区二区精品在线观看| 国产一区二区三区香蕉| 国产精品一区专区| 国产精品主播直播| 成人动漫中文字幕| 99久久精品久久久久久清纯| 99久久婷婷国产精品综合| 99久久免费精品高清特色大片| 91在线视频免费91| 欧美日韩在线播放一区| 欧美一区二区三区免费在线看| 日韩欧美一区二区视频| 欧美videos中文字幕| 国产欧美精品一区二区色综合 | 精品一区二区三区欧美| 国内精品免费在线观看| 国产麻豆精品在线| 99这里只有精品| 欧美手机在线视频| 精品精品国产高清一毛片一天堂| 2023国产精品视频| 亚洲乱码中文字幕综合| 日韩和欧美一区二区| 蜜桃av一区二区| 丁香婷婷综合色啪| 在线视频欧美精品| 日韩精品一区二区三区在线观看| 久久久美女毛片| 一区二区激情视频| 久久精品99国产精品| 成人精品gif动图一区| 欧美日韩高清一区二区| 久久蜜桃av一区二区天堂| 一区二区欧美视频| 国产乱码精品一区二区三区五月婷| 91网站在线播放| 日韩三级免费观看| 一区二区三区资源| 国产一区二区精品久久91| 色婷婷av一区二区三区gif| 欧美mv和日韩mv的网站| 亚洲综合激情网| 国产成人精品一区二区三区网站观看| 欧美影院精品一区| 中文字幕第一区| 久久99国内精品| 欧美吻胸吃奶大尺度电影| 久久久亚洲国产美女国产盗摄 | 亚洲欧美中日韩| 日本不卡一区二区三区| 99精品在线观看视频| 精品国产乱码久久| 一区二区三区四区亚洲| 国产毛片精品视频| 91精品久久久久久久99蜜桃| 亚洲视频每日更新| 国产丶欧美丶日本不卡视频| 日韩一区二区三区在线观看| 亚洲制服丝袜在线| av亚洲产国偷v产偷v自拍| 久久噜噜亚洲综合| 韩国av一区二区| 欧美一区二区三区免费在线看| 亚洲成人动漫在线免费观看| zzijzzij亚洲日本少妇熟睡| 久久久久综合网| 久久99精品国产麻豆婷婷| 欧美日韩不卡一区二区| 一区二区三区四区不卡在线| 成人福利视频在线| 国产精品丝袜久久久久久app| 免费成人美女在线观看.| 91精品国产综合久久精品app | 欧美日韩国产三级| 一二三区精品视频| 日本精品视频一区二区三区| 亚洲欧美日韩国产综合| 日本高清无吗v一区| 亚洲靠逼com| 欧美特级限制片免费在线观看| 一级日本不卡的影视|