package com.yannick_zhou.day.day28;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import org.junit.Test;
/*
* 1.先用FileInputStream读取文件
* 2.调用socket.getOutputStream()将文件写出去
* 3.调用socket.getInputStream();读取文件
* 4.再用FileOutputStream将文件写在磁盘
*/
public class SocketTest {
// 网络传输文件
@Test
public void Client() throws IOException{
InetAddress address = InetAddress.getByName("127.0.0.1");
Socket socket = new Socket(address, 12345);
//读取文件
FileInputStream fis = new FileInputStream("my.jpg");
//把图片写出去
OutputStream os = socket.getOutputStream();
byte[] buffer=new byte[1024];
int len;
while((len=fis.read(buffer))!=-1){
os.write(buffer, 0, len);
}
os.close();
socket.close();
}
@Test
public void Server() throws IOException {
ServerSocket serverSocket = new ServerSocket(12345);
Socket socket = serverSocket.accept();
FileOutputStream fos = new FileOutputStream("my-copy.jpg");
InputStream is = socket.getInputStream();
byte[] buffer=new byte[1024];
int len;
while((len=is.read(buffer))!=-1){
fos.write(buffer, 0, len);
}
fos.close();
is.close();
}
}