用户端
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.Socket;
public class SocketClientDemo {
public static void main(String[] args) throws Exception{
//try with resource写法,不需要手动关闭资源
try(
//1.创建一个socket连接
Socket socket = new Socket("localhost",9000);
//2.创建一个输出流
OutputStream os = socket.getOutputStream();
//3.读取文件
FileInputStream fis = new FileInputStream(new File("send.txt"));
) {
//4.写文件
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1)
os.write(buffer, 0, len);
}
}
}
服务端
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketServerDemo {
public static void main(String[] args) throws Exception {
//try with resource写法,不需要手动关闭资源
try(
//1.创建服务
ServerSocket serverSocket = new ServerSocket(9000);
//2.监听客户端的连接
Socket socket = serverSocket.accept(); //阻塞式监听
//3.获取输入流
InputStream is = socket.getInputStream();
//4.文件输出
FileOutputStream fos = new FileOutputStream(new File("recieve.txt"));
) {
byte[] buffer = new byte[1024];
int len;
while ((len = is.read(buffer)) != -1) //把socket输入流的数据写入buffer
fos.write(buffer, 0, len); //往文件输出流中输出buffer中内容
}
}
}