⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jconnection.java

📁 一个JAVA做的FTP软件,带源码的,可以很好的进行二次开发,,并带有详细说明文件的
💻 JAVA
字号:
/* * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. */package net.sf.jftp.net;import net.sf.jftp.config.Settings;import net.sf.jftp.util.Log;import java.io.*;import java.net.*;/** * Basic class for getting an TCP/IP-Connection * timeout sets (as the name says) the maximum time the Thread * waits for the target host... */public class JConnection implements Runnable{    private int timeout = Settings.connectionTimeout;    private String host;    private int port;    private PrintStream out;    private BufferedReader in;    private Socket s;    private boolean isOk = false;    private boolean established = false;    private boolean reciever = false;    private Thread runner;    private int localPort = -1;    private int time = 0;    /*    private boolean useSocks4 = false;    private String socks4Host = "192.168.0.1";    private int socks4Port = 1080;    */    public JConnection(String host, int port)    {        this.host = host;        this.port = port;        runner = new Thread(this);        runner.start();    }    public JConnection(String host, int port, int time)    {        this.host = host;        this.port = port;        this.timeout = time;        this.time = time;        runner = new Thread(this);        runner.start();    }    /*    private int swabInt(int v)    {            return  (v >>> 24) | (v << 24) |      ((v << 8) & 0x00FF0000) | ((v >> 8) & 0x0000FF00);    }    */    public void run()    {        try        {            /*                if(useSocks4)                {                        s = new Socket(socks4Host, socks4Port);                    Log.debug("\nsending socks4-request...");                    OutputStream o = s.getOutputStream();                    byte buf[] = new byte[9];                    buf[0] = (byte) 4;                    buf[1] = (byte) 0x1;                    buf[2] = (byte) 1;                    buf[3] = (byte) 1;                    buf[4] = (byte) 1;                    buf[5] = (byte) 1;                    buf[6] = (byte) 1;                    buf[7] = (byte) 1;                    buf[8] = (byte) 0;                    o.write(buf);                    o.flush();                        Log.debug("reading response...");                    byte ret[] = new byte[8];                    int bytes = s.getInputStream().read(ret);                    if(ret[1] == 90)                    {                            Log.debug("connection accepted");                                localPort = s.getLocalPort();                                out = new PrintStream(new BufferedOutputStream(s.getOutputStream(), Settings.bufferSize));                                in = new BufferedReader(new InputStreamReader(s.getInputStream()), Settings.bufferSize);                            isOk = true;                    }                    else                    {                            Log.debug("socks-connection refused (returncode " + ret[1] + ")");                            isOk = false;                    }                }                else                {                */            s = new Socket(host, port);            localPort = s.getLocalPort();            //if(time > 0) s.setSoTimeout(time);            out = new PrintStream(new BufferedOutputStream(s.getOutputStream(),                                                           Settings.bufferSize));            in = new BufferedReader(new InputStreamReader(s.getInputStream()),                                    Settings.bufferSize);            isOk = true;            // }        }        catch(Exception ex)        {            ex.printStackTrace();            Log.out("WARNING: connection closed due to exception (" + host +                    ":" + port + ")");            isOk = false;            try            {                if((s != null) && !s.isClosed())                {                    s.close();                }                if(out != null)                {                    out.close();                }                if(in != null)                {                    in.close();                }            }            catch(Exception ex2)            {                ex2.printStackTrace();                Log.out("WARNING: got more errors trying to close socket and streams");            }        }        established = true;    }    public boolean isThere()    {        int cnt = 0;        while(!established && (cnt < timeout))        {            pause(100);            cnt = cnt + 100;            //System.out.println(cnt + "/" + timeout);        }        return isOk;    }    public void send(String data)    {        try        {            //System.out.println(":"+data+":");            out.print(data);            out.print("\r\n");            out.flush();            if(data.startsWith("PASS"))            {                Log.debug("> PASS ****");            }            else            {                Log.debug("> " + data);            }        }        catch(Exception ex)        {            ex.printStackTrace();        }    }    public PrintStream getInetOutputStream()    {        return out;    }    public BufferedReader getReader()    {        return in;    }    public int getLocalPort()    {        return localPort;    }    public InetAddress getLocalAddress() throws IOException    {        return s.getLocalAddress();    }    private void pause(int time)    {        try        {            Thread.sleep(time);        }        catch(Exception ex)        {        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -