使用Java语言编写可用于实际网络环境的文件传送器,可指定传输的本地文件,并且文件传送器的两个传送端可工作于不同的主机上或同一主机的不同程序
时间: 2024-05-06 12:18:10 浏览: 57
要实现这样的文件传送器,可以使用Java的Socket编程来进行实现。
首先,在发送端,需要创建一个Socket对象,并指定接收端的IP地址和端口号。然后,读取本地文件,并将文件内容发送给接收端。
在接收端,也需要创建一个Socket对象,并监听指定的端口号。当接收到发送端的请求后,接收端会创建一个新的Socket对象,用于接收发送端发送过来的文件内容,并将内容写入本地文件中。
以下是一个简单的Java文件传送器的实现代码:
发送端代码:
```java
import java.io.*;
import java.net.Socket;
public class FileSender {
public static void main(String[] args) throws IOException {
String host = "127.0.0.1"; // 接收端IP地址
int port = 12345; // 接收端端口号
// 创建Socket对象
Socket socket = new Socket(host, port);
// 读取本地文件
File file = new File("test.txt");
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[(int) file.length()];
fis.read(buffer);
// 发送文件内容
OutputStream os = socket.getOutputStream();
os.write(buffer);
// 关闭流和Socket对象
os.close();
fis.close();
socket.close();
}
}
```
接收端代码:
```java
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class FileReceiver {
public static void main(String[] args) throws IOException {
int port = 12345; // 监听端口号
// 创建ServerSocket对象
ServerSocket serverSocket = new ServerSocket(port);
// 监听端口号,接收发送端的请求
Socket socket = serverSocket.accept();
// 读取发送端发送过来的文件内容
InputStream is = socket.getInputStream();
byte[] buffer = new byte[1024];
int len = 0;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while ((len = is.read(buffer)) != -1) {
baos.write(buffer, 0, len);
}
// 将文件内容写入本地文件
File file = new File("test.txt");
FileOutputStream fos = new FileOutputStream(file);
fos.write(baos.toByteArray());
// 关闭流和Socket对象
fos.close();
baos.close();
is.close();
socket.close();
serverSocket.close();
}
}
```
可以看到,通过这样的方式,就可以实现一个简单的Java文件传送器。如果需要在不同主机上进行文件传送,只需要修改发送端的host为接收端的IP地址即可。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![doc](https://img-home.csdnimg.cn/images/20241231044833.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![-](https://img-home.csdnimg.cn/images/20241226111658.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)