//接收初始链接信息
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){
}
}
}
相关推荐
对于FTP服务器端,你需要创建一个ServerSocket监听特定的端口,等待客户端的连接请求。当客户端连接时,ServerSocket的accept()方法将返回一个新的Socket实例,用于与客户端进行通信。服务器端需要实现一系列FTP命令...
在本文中,我们将深入探讨"Socket服务器端程序"的相关知识点,包括Socket的基本概念、服务器端的创建过程、服务器与客户端的交互以及相关应用。 首先,让我们理解什么是Socket。Socket在计算机网络中是一种进程间...
在Java中,我们通常使用`java.net.Socket`和`java.net.ServerSocket`类来实现客户端和服务器端的通信。 1. **创建服务器端** - 首先,服务器端需要创建一个`ServerSocket`实例,指定一个端口号。这个端口是客户端...
- Java的I/O流用于在Socket的输入/输出流之间传输数据,通常使用`DataInputStream`和`DataOutputStream`来方便地读写基本类型和字符串。 - `input.readUTF()`和`output.writeUTF(message)`:这两个方法用于读写UTF...
Java的`java.net.Socket`和`java.net.ServerSocket`类提供了客户端和服务器端通信的基础。首先,服务器端会创建一个`ServerSocket`,监听特定端口上的连接请求。当客户端通过`Socket`连接到服务器时,它们可以通过...
在TCP/IP协议族中,Socket编程包括客户端Socket和服务器端ServerSocket两种角色。客户端Socket用于发起网络请求,而服务器端ServerSocket负责监听来自客户端的请求。两者通过IP地址和端口号建立通信连接,从而实现...
因此,可以使用InputStreamReader、OutputStreamWriter等字符流类,配合BufferedReader和PrintWriter,实现字符串的读写。例如,服务器端通过`PrintWriter.println()`将数据写入输出流,客户端通过`BufferedReader....
2. **多线程处理**:由于FTP协议允许同时处理多个客户端连接,因此服务器端需要使用多线程来并发地处理这些连接。每个客户端连接都会启动一个新的线程,以确保服务的并行性和响应速度。 3. **FTP命令解析**:FTP...
将文件内容通过Socket的输出流发送给客户端。 #### 四、总结 此Java程序提供了一个基本框架来实现FTP文件传输。通过客户端向服务器发送特定的命令,服务器根据命令处理文件读写操作,并通过Socket将文件内容传输给...
- `Server.java`: 实现FTP服务器端的代码。 - `Client.java`: 实现FTP客户端的代码。 - `Utils.java`: 可能包含一些通用的工具方法,如网络I/O操作、数据解析等。 - `Constants.java`: 可能定义了FTP协议相关的常量...
Java仿照FTP(File Transfer Protocol)制作的TCP/IP文件传输Demo是一个典型的网络编程示例,它利用Java的Socket编程来实现文件的发送和接收。FTP协议是互联网上用于在主机之间传输文件的标准协议,而这个Demo则展示...
在Java中,Socket类提供了客户端和服务器端之间的连接,而ServerSocket类用于监听和接受来自客户端的连接请求。这份压缩包文件中的"Socket封装类"可能包含了对这两种基础Socket类的高级封装,旨在提高代码的可复用性...
TCP协议的Socket编程示例中,服务器端创建ServerSocket并监听指定端口,当有客户端连接时,accept()方法返回一个新的Socket,然后通过这个Socket的输入流读取客户端发送的信息,再通过输出流回传响应。客户端则通过...
同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-mail账号,查询mail 服务器的会话…… 还包括消息客户端程序,通过连接创建会话。创建发送者和映射消息。发送消息,同时对...
- 编码与解码:在进行字符串传输时,需要注意字符编码的问题,通常使用UTF-8编码进行网络传输以避免乱码。 4. 多机通信: 在多机通信场景下,Socket通信可以扩展为多对多的形式,比如聊天室、分布式系统等。...
在Java中,我们可以使用`InetAddress`类的静态方法`getByName(String host)`来根据主机名获取IP地址,或者用`getHostAddress()`方法从IP地址对象中获取IP字符串形式。例如,`InetAddress.getByName("example.com")`...
同时一个mail note将被发送给消息发送者,发送一个e-mail通知给由recipient参数确定的e-mail账号,查询mail 服务器的会话…… 还包括消息客户端程序,通过连接创建会话。创建发送者和映射消息。发送消息,同时对...
服务器端负责接收并处理客户端的文件传输请求,而客户端则用来连接服务器并发送这些请求。在JavaFTP项目中,开发者可能已经实现了一个或多个类来模拟这两个角色。 在Java中实现FTP,主要依赖于Java的`java.net`和`...