package cn.itcast.tcp;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.HashSet;
public class ImageServer extends Thread {
Socket socket ;
static HashSet<String> ips = new HashSet<String>();
public ImageServer(Socket socket) {
this.socket = socket;
}
@Override
public void run() {
try {
OutputStream outputStream = socket.getOutputStream();
FileInputStream fileInputStream = new FileInputStream("F:\\美女\\3.jpg");
byte[] buf = new byte[1024];
int length = 0 ;
while((length = fileInputStream.read(buf))!=-1){
outputStream.write(buf,0,length);
}
String ip = socket.getInetAddress().getHostAddress();
if(ips.add(ip)){
System.out.println("恭喜"+ip+"同学成功下载,当前下载的人数是:"+ ips.size());
}
fileInputStream.close();
socket.close();
}catch (IOException e) {
}
}
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(9090);
while(true){
Socket socket = serverSocket.accept();
new ImageServer(socket).start();
}
}
}
package cn.itcast.tcp;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class ImageClient {
public static void main(String[] args) throws Exception{
Socket socket = new Socket(InetAddress.getLocalHost(),9090);
InputStream inputStream = socket.getInputStream();
FileOutputStream fileOutputStream = new FileOutputStream("F:\\3.jpg");
byte[] buf = new byte[1024];
int length = 0 ;
while((length = inputStream.read(buf))!=-1){
fileOutputStream.write(buf,0,length);
}
fileOutputStream.close();
socket.close();
}
}