Java Socket 图片传输:详细代码示例与解析
在 Java 中,可以使用 Socket 传输图片。以下是一个示例代码,演示如何使用 Socket 传输图片:
- 服务端代码:
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(12345);
System.out.println('等待客户端连接...');
Socket socket = serverSocket.accept();
System.out.println('客户端已连接');
InputStream inputStream = socket.getInputStream();
FileOutputStream fileOutputStream = new FileOutputStream('received_image.jpg');
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
fileOutputStream.write(buffer, 0, bytesRead);
}
fileOutputStream.close();
inputStream.close();
serverSocket.close();
}
}
- 客户端代码:
import java.io.*;
import java.net.*;
public class Client {
public static void main(String[] args) throws IOException {
Socket socket = new Socket('localhost', 12345);
File file = new File('image.jpg');
FileInputStream fileInputStream = new FileInputStream(file);
OutputStream outputStream = socket.getOutputStream();
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fileInputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
outputStream.close();
fileInputStream.close();
socket.close();
}
}
在上述示例代码中,服务端通过 ServerSocket 监听 12345 端口,并等待客户端连接。一旦客户端连接成功,服务端将从 Socket 的 InputStream 中读取数据,并将数据写入文件中。
客户端通过 Socket 连接到服务端的 12345 端口,并从文件中读取数据,然后通过 Socket 的 OutputStream 将数据发送给服务端。
这样,客户端就成功将图片文件传输给了服务端。服务端接收到数据后,将其保存为 received_image.jpg 文件。
原文地址: https://www.cveoy.top/t/topic/qsav 著作权归作者所有。请勿转载和采集!