使用Socket将图片从PC发送到Android可以通过以下步骤实现:
以下是一个简单的示例代码:
PC端(服务器端):
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) {
try {
// 创建服务器端Socket,监听指定端口
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("等待Android端连接...");
// 等待Android端连接
Socket socket = serverSocket.accept();
System.out.println("Android端已连接");
// 读取图片文件为字节流
File file = new File("path/to/image.jpg");
FileInputStream fileInputStream = new FileInputStream(file);
byte[] buffer = new byte[(int) file.length()];
fileInputStream.read(buffer);
// 发送字节流给Android端
OutputStream outputStream = socket.getOutputStream();
outputStream.write(buffer);
System.out.println("图片已发送");
// 关闭连接
fileInputStream.close();
outputStream.close();
socket.close();
serverSocket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Android端(客户端):
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.Socket;
public class Client {
public static void main(String[] args) {
try {
// 创建客户端Socket,连接到服务器端
Socket socket = new Socket("PC的IP地址", 8888);
// 接收服务器端发送的字节流
InputStream inputStream = socket.getInputStream();
byte[] buffer = new byte[1024];
int bytesRead;
// 创建图片文件
File file = new File("path/to/save/image.jpg");
FileOutputStream fileOutputStream = new FileOutputStream(file);
// 将字节流写入图片文件
while ((bytesRead = inputStream.read(buffer)) != -1) {
fileOutputStream.write(buffer, 0, bytesRead);
}
System.out.println("图片已接收");
// 关闭连接
fileOutputStream.close();
inputStream.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
请注意,以上示例代码仅为演示目的,实际使用时需要根据具体情况进行适当修改和优化。另外,还需要确保PC端和Android端在同一局域网内,并且PC端的防火墙允许指定端口的通信。
领取专属 10元无门槛券
手把手带您无忧上云