package com.net;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class PicServer {
public static void main(String[] args) throws Exception {
ServerSocket ss = new ServerSocket(10009);
while (true) {
Socket s = ss.accept();
new Thread(new PicThread(s)).start();
}
// ss.close();
}
}
class PicThread implements Runnable {
Socket s = null;
public PicThread(Socket s) {
super();
this.s = s;
}
@Override
public void run() {
int num = 0;
try {
InputStream in = s.getInputStream();
File file = new File(Thread.currentThread().getName()+".jpg");
while(file.exists())
file = new File(Thread.currentThread().getName()+"("+(num++)+")"+".jpg");
FileOutputStream fos = new FileOutputStream(file);
byte[] buf = new byte[1024];
int len = 0;
while ((len = in.read(buf)) != -1) {
fos.write(buf, 0, len);
}
OutputStream os = s.getOutputStream();
os.write("上传成功".getBytes());
os.close();
s.close();
} catch(Exception e){
throw new RuntimeException("上传失败");
}
}
}
package com.net;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public class PicClient {
public static void main(String[] args) throws Exception {
Socket s = new Socket("127.0.0.1",10009);
FileInputStream fis = new FileInputStream("d:/nihao.jpg");
OutputStream out = s.getOutputStream();
int len;
byte[] buf = new byte[1024];
while((len=fis.read(buf))!=-1) {
out.write(buf, 0, len);
}
s.shutdownOutput();
InputStream in = s.getInputStream();
byte[] b = new byte[1024];
int num = in.read(b);
System.out.println(new String(b,0,num));
fis.close();
s.close();
}
}