概述
代码语言:javascript复制1.完成图片的复制,与客户端向服务端传输文字相差不大。都是:
1.1基于TCP协议的服务器端
1.创建服务器套接字,绑定端口号(new ServerSocket(1008))
2.侦听客户连接,返回socker(listener.accept())
3.获输入、输出流
4.处理数据
5.关闭资源
1.2基于TCP协议的客户端
1.创建客户端套接字,指定服务器的地址和端口号
2.获输入、输出流
3.处理数据
4.关闭资源
2.需要注意的是:1.首先启动服务端Server 的服务,然后启动客户端Client
2.由客户端FileInputStream 向电脑a读取图片,BufferedOutputStream 再向电脑a写入图片
3.由服务端BufferedInputStream 从电脑b读取图片,FileOutputStream 再向电脑b 写入图片
1.服务端代码
代码语言:javascript复制package d04_test;/*
* zt
* 2020/8/10
* 20:36
*
*/
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws IOException {
//1.创建
ServerSocket listener = new ServerSocket(10086);
//2.侦听
System.out.println("服务器已经启动");
Socket socket = listener.accept();
//3.获取数据
BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
//4.处理数据
FileOutputStream fos = new FileOutputStream("f:\yyy.jpg");
byte[] buf = new byte[1024];
int len = 0;
while((len = bis.read(buf))!=-1){
fos.write(buf, 0, len);
}
//5.关闭资源
fos.close();
bis.close();
socket.close();
listener.close();
System.out.println("复制完毕");
}
}
2.客户端代码
代码语言:javascript复制package d04_test;/*
* zt
* 2020/8/10
* 20:37
*
*/
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws Exception {
//1.创建
Socket socket = new Socket("10.0.139.160",10086);
//2.获取输入流输出流
BufferedOutputStream bos = new BufferedOutputStream(socket.getOutputStream());
//3.处理数据
FileInputStream fis = new FileInputStream("f:\aaa.jpg");
byte[] buf = new byte[1024];
int len = 0;
while ((len = fis.read(buf))!=-1){
bos.write(buf, 0, len);
bos.flush();
}
//4.关闭资源
bos.close();
fis.close();
socket.close();
System.out.println("发送完毕");
}
}
3.运行结果
Server运行结果:
代码语言:javascript复制服务器已经启动
复制完毕
Process finished with exit code 0
Client运行结果:
代码语言:javascript复制发送完毕
Process finished with exit code 0