117.info
人生若只如初见

java局域网传输文件

要在Java中实现局域网传输文件,可以使用Socket编程。以下是一个简单的示例代码:

  1. 创建一个服务器端,监听指定端口,接收文件。
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class FileServer {
public static void main(String[] args) {
int port = 12345; // 指定监听的端口
try (ServerSocket serverSocket = new ServerSocket(port)) {
System.out.println("Server is listening on port " + port);
while (true) {
Socket socket = serverSocket.accept();
System.out.println("Accepted connection from client: " + socket.getInetAddress());
try (InputStream inputStream = socket.getInputStream();
FileOutputStream fileOutputStream = new FileOutputStream("received_file.txt")) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
fileOutputStream.write(buffer, 0, bytesRead);
}
System.out.println("File received successfully.");
} catch (IOException e) {
System.out.println("Error receiving file: " + e.getMessage());
}
}
} catch (IOException e) {
System.out.println("Server error: " + e.getMessage());
}
}
}
  1. 创建一个客户端,连接到服务器并发送文件。
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
public class FileClient {
public static void main(String[] args) {
String serverAddress = "192.168.1.100"; // 服务器的IP地址
int port = 12345; // 服务器监听的端口
String fileToSend = "file_to_send.txt"; // 要发送的文件名
try (Socket socket = new Socket(serverAddress, port);
FileInputStream fileInputStream = new FileInputStream(fileToSend);
OutputStream outputStream = socket.getOutputStream()) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fileInputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
System.out.println("File sent successfully.");
} catch (IOException e) {
System.out.println("Client error: " + e.getMessage());
}
}
}

在运行时,先启动服务器端,然后再启动客户端。客户端会将指定的文件发送到服务器端,并在控制台上显示发送成功的消息。服务器端会接收文件并保存在同一目录下的"received_file.txt"文件中。

请注意,上述示例代码仅仅演示了最基本的文件传输功能,并没有考虑到文件的安全性、进度更新、传输错误处理等方面的问题。在实际应用中,可能需要根据具体需求进行扩展和改进。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe461AzsLBwRSAFI.html

推荐文章

  • java无效的列类型是什么意思

    "Java无效的列类型"是指在使用JDBC(Java数据库连接)操作数据库时,尝试使用数据库中不存在或不支持的列类型。
    例如,当尝试将Java中的数据类型映射到数据...

  • java如何获取当前项目的路径地址

    在Java中,可以使用以下代码获取当前项目的路径地址: 使用System.getProperty("user.dir")方法获取当前项目的工作目录路径,代码如下: String projectPath = S...

  • java如何获取gps定位信息

    在Java中获取GPS定位信息,可以使用Java提供的定位API或通过第三方库来实现。 使用Java定位API:Java提供了javax.microedition.location包来获取GPS定位信息。可...

  • java date比较大小的方法是什么

    在Java中,可以使用compareTo()方法来比较两个Date对象的大小。
    compareTo()方法返回一个整数值,表示两个日期的比较结果。如果第一个日期早于第二个日期,...

  • PreferenceActivity使用介绍

    PreferenceActivity是Android中的一个界面组件,用于展示和编辑应用程序的设置选项。它继承自Activity,并提供了一种简便的方式来创建和管理设置界面。
    使用...

  • Windows下C语言多线程函数

    Windows下C语言多线程函数可以使用Windows API提供的函数来实现。以下是常用的Windows多线程函数: CreateThread函数:创建一个新的线程。该函数的原型如下: HA...

  • MySQL数据库的数据类型decimal详解

    在MySQL数据库中,decimal数据类型用于存储精确的小数值。它比其他浮点类型(如float和double)更适合用于存储货币金额、利率等需要精确计算的数据。
    decim...

  • 电脑没有找到normaliz.dll怎么处理

    如果您的电脑缺少normaliz.dll文件,您可以尝试以下几种解决方法: 通过系统还原恢复文件:如果您在缺少normaliz.dll文件之前创建了系统还原点,您可以尝试使用系...