`

Java使用Socket发送字符串给FTP服务器端

    博客分类:
  • java
 
阅读更多

 

 

 

import java.io.InputStream;  
import java.io.OutputStream;  
import java.net.Socket;  
public class FTPClient{
    public static void main(String[] args) throws Exception{  
        Socket socket = new Socket("192.168.0.1",21);  
        InputStream is = socket.getInputStream();  
        OutputStream os = socket.getOutputStream();
        //接收初始链接信息
        byte[] buffer = new byte[100];
        int length = is.read(buffer);
        String s = new String(buffer, 0, length);
        System.out.println(s);
        //发送用户名
        String str = "USER useway/n";
        os.write(str.getBytes());
        //得到返回值
        length = is.read(buffer);
        s = new String(buffer, 0, length);
        System.out.println(s);       
        //发送密码
        str = "PASS !@#$%abcd/n";
        os.write(str.getBytes());
//得到返回值
        length = is.read(buffer);
        s = new String(buffer, 0, length);
        System.out.println(s);
        //发送切换文件夹指令
        str = "CWD /home/useway/n";
        os.write(str.getBytes());
        //得到返回值
        length = is.read(buffer);
        s = new String(buffer, 0, length);
        System.out.println(s);
        //设置模式
        str = "EPSV ALL/n";
        os.write(str.getBytes());
        //得到返回值
        length = is.read(buffer);
        s = new String(buffer, 0, length);
        System.out.println(s);       
        //得到被动监听信息
        str = "EPSV/n";
        os.write(str.getBytes());
        //得到返回值
        length = is.read(buffer);
        s = new String(buffer, 0, length);
        System.out.println(s);
        //取得FTP被动监听的端口号
        String portlist=s.substring(s.indexOf("(|||")+4,s.indexOf("|)"));
        System.out.println(portlist);
        //实例化ShowList线程类,链接FTP被动监听端口号
        ShowList sl=new ShowList();
        sl.port=Integer.parseInt(portlist);
        sl.start();
        //执行LIST命令
        str = "LIST/n";
        os.write(str.getBytes());
        //得到返回值
        length = is.read(buffer);
        s = new String(buffer, 0, length);
        System.out.println(s);
        //关闭链接
        is.close();
        os.close();
        socket.close();
    }
}
//得到被动链接信息类,这个类是多线程的
class ShowList extends Thread{
 public int port=0;
    public void run(){
     try{
         Socket socket = new Socket("192.168.0.1",this.port);
         InputStream is = socket.getInputStream();
         OutputStream os = socket.getOutputStream();
         byte[] buffer = new byte[10000];
         int length = is.read(buffer);
         String s = new String(buffer, 0, length);
         System.out.println(s);
            //关闭链接
            is.close();
            os.close();
            socket.close();
     }
     catch(Exception ex){
     }
    }
}

 

 

 

 

 

分享到:
评论

相关推荐

    Socket做的FTP

    对于FTP服务器端,你需要创建一个ServerSocket监听特定的端口,等待客户端的连接请求。当客户端连接时,ServerSocket的accept()方法将返回一个新的Socket实例,用于与客户端进行通信。服务器端需要实现一系列FTP命令...

    例10.04 Socket服务器端程序.rar_socket 服务器_socket服务_socket服务器_服务器_服务器程

    在本文中,我们将深入探讨"Socket服务器端程序"的相关知识点,包括Socket的基本概念、服务器端的创建过程、服务器与客户端的交互以及相关应用。 首先,让我们理解什么是Socket。Socket在计算机网络中是一种进程间...

    使用Socket传输图片

    在Java中,我们通常使用`java.net.Socket`和`java.net.ServerSocket`类来实现客户端和服务器端的通信。 1. **创建服务器端** - 首先,服务器端需要创建一个`ServerSocket`实例,指定一个端口号。这个端口是客户端...

    Java socket编程实例代码(Blog配套代码)

    - Java的I/O流用于在Socket的输入/输出流之间传输数据,通常使用`DataInputStream`和`DataOutputStream`来方便地读写基本类型和字符串。 - `input.readUTF()`和`output.writeUTF(message)`:这两个方法用于读写UTF...

    JAVA做得文件传输 类似FTP

    Java的`java.net.Socket`和`java.net.ServerSocket`类提供了客户端和服务器端通信的基础。首先,服务器端会创建一个`ServerSocket`,监听特定端口上的连接请求。当客户端通过`Socket`连接到服务器时,它们可以通过...

    基于Java Socket网络编程的基础性应用研究.pdf

    在TCP/IP协议族中,Socket编程包括客户端Socket和服务器端ServerSocket两种角色。客户端Socket用于发起网络请求,而服务器端ServerSocket负责监听来自客户端的请求。两者通过IP地址和端口号建立通信连接,从而实现...

    Java TCP-IP Socket编程-卡尔弗特.pdf

    因此,可以使用InputStreamReader、OutputStreamWriter等字符流类,配合BufferedReader和PrintWriter,实现字符串的读写。例如,服务器端通过`PrintWriter.println()`将数据写入输出流,客户端通过`BufferedReader....

    基于Java的实例源码-ftp简易服务器.zip

    2. **多线程处理**:由于FTP协议允许同时处理多个客户端连接,因此服务器端需要使用多线程来并发地处理这些连接。每个客户端连接都会启动一个新的线程,以确保服务的并行性和响应速度。 3. **FTP命令解析**:FTP...

    java 文件传输代码

    将文件内容通过Socket的输出流发送给客户端。 #### 四、总结 此Java程序提供了一个基本框架来实现FTP文件传输。通过客户端向服务器发送特定的命令,服务器根据命令处理文件读写操作,并通过Socket将文件内容传输给...

    socket编程经典例子源码

    - `Server.java`: 实现FTP服务器端的代码。 - `Client.java`: 实现FTP客户端的代码。 - `Utils.java`: 可能包含一些通用的工具方法,如网络I/O操作、数据解析等。 - `Constants.java`: 可能定义了FTP协议相关的常量...

    Java仿照ftp做的TCP/IP文件传输Demo

    Java仿照FTP(File Transfer Protocol)制作的TCP/IP文件传输Demo是一个典型的网络编程示例,它利用Java的Socket编程来实现文件的发送和接收。FTP协议是互联网上用于在主机之间传输文件的标准协议,而这个Demo则展示...

    Socket封装类

    在Java中,Socket类提供了客户端和服务器端之间的连接,而ServerSocket类用于监听和接受来自客户端的连接请求。这份压缩包文件中的"Socket封装类"可能包含了对这两种基础Socket类的高级封装,旨在提高代码的可复用性...

    清华大学张思民Java专题培训课件.ppt

    TCP协议的Socket编程示例中,服务器端创建ServerSocket并监听指定端口,当有客户端连接时,accept()方法返回一个新的Socket,然后通过这个Socket的输入流读取客户端发送的信息,再通过输出流回传响应。客户端则通过...

    java源码包---java 源码 大量 实例

    同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-mail账号,查询mail 服务器的会话……  还包括消息客户端程序,通过连接创建会话。创建发送者和映射消息。发送消息,同时对...

    socket通信socket通信

    - 编码与解码:在进行字符串传输时,需要注意字符编码的问题,通常使用UTF-8编码进行网络传输以避免乱码。 4. 多机通信: 在多机通信场景下,Socket通信可以扩展为多对多的形式,比如聊天室、分布式系统等。...

    Socket通信样例代码

    在Java中,我们可以使用`InetAddress`类的静态方法`getByName(String host)`来根据主机名获取IP地址,或者用`getHostAddress()`方法从IP地址对象中获取IP字符串形式。例如,`InetAddress.getByName("example.com")`...

    java源码包3

    同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-mail账号,查询mail 服务器的会话……  还包括消息客户端程序,通过连接创建会话。创建发送者和映射消息。发送消息,同时对...

    JavaFTP:基本的 Java FTP 服务器和客户端

    服务器端负责接收并处理客户端的文件传输请求,而客户端则用来连接服务器并发送这些请求。在JavaFTP项目中,开发者可能已经实现了一个或多个类来模拟这两个角色。 在Java中实现FTP,主要依赖于Java的`java.net`和`...

Global site tag (gtag.js) - Google Analytics