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 写入图片
客户端代码:
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("发送完毕");
}
}
服务端代码:
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("复制完毕");
}
}