Java Socket实现文件传输是一项很有用的功能,它可以用于将文件在不同的计算机之间传输。下面将会提供一份完整的攻略,帮助你实现Java Socket实现文件传输。
一、创建Socket
在Java中,可以通过Socket类来创建Socket。使用Socket类可以连接到远程计算机上的Socket服务端程序。这个服务端程序可以接收客户端发送的数据,从而实现客户端与服务端之间的通信。
在创建Socket时,需要指定连接的IP地址和端口号。示例代码如下:
Socket socketClient = new Socket("192.168.1.100", 1234);
InputStream inputStream = socketClient.getInputStream();
OutputStream outputStream = socketClient.getOutputStream();
上述代码创建了一个连接到IP地址为“192.168.1.100”的计算机的Socket,并且指定了连接的端口为1234。
二、文件传输
在创建Socket的基础上,可以在两个计算机之间进行数据传输。文件传输的具体实现方式可以使用流的方式实现。
例如,如果要从本地计算机向连接的远程计算机上发送文件,可以使用以下代码:
File file = new File("test.txt");
FileInputStream fileInputStream = new FileInputStream(file);
byte[] buffer = new byte[1024];
int length;
while ((length = fileInputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
fileInputStream.close();
上述代码创建了一个文件输入流,将文件“test.txt”中的数据读取为字节数组,将其写入到输出流中,从而实现了文件的传输。
如果要从连接的远程计算机上接收文件,可以使用以下代码:
File file = new File("received.txt");
FileOutputStream fileOutputStream = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
fileOutputStream.write(buffer, 0, length);
}
fileOutputStream.close();
上述代码创建了一个文件输出流,将从输入流中读取的文件数据写入到文件“received.txt”中,从而实现了文件的接收。
三、完整示例代码
以下是一个完整的Java Socket实现文件传输的示例代码:
服务端代码:
public class Server {
public static void main(String[] args) throws Exception {
ServerSocket serverSocket = new ServerSocket(1234);
Socket socket = serverSocket.accept();
while (true) {
InputStream inputStream = socket.getInputStream();
OutputStream outputStream = socket.getOutputStream();
File file = new File("received.txt");
FileOutputStream fileOutputStream = new FileOutputStream(file);
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) > 0) {
fileOutputStream.write(buffer, 0, length);
}
fileOutputStream.close();
inputStream.close();
outputStream.close();
socket.close();
}
}
}
客户端代码:
public class Client {
public static void main(String[] args) throws Exception {
Socket socketClient = new Socket("192.168.1.100", 1234);
InputStream inputStream = socketClient.getInputStream();
OutputStream outputStream = socketClient.getOutputStream();
File file = new File("test.txt");
FileInputStream fileInputStream = new FileInputStream(file);
byte[] buffer = new byte[1024];
int length;
while ((length = fileInputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
fileInputStream.close();
inputStream.close();
outputStream.close();
socketClient.close();
}
}
以上代码可以实现从客户端向服务端发送文件,或者从服务端向客户端发送文件。运行该示例代码即可实现Java Socket实现文件传输功能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java Socket实现文件传输示例代码 - Python技术站