public class client {
public static void main(String[] args) throws IOException, IOException {
//创建客户端Socket对象
Socket s=new Socket("192.168.137.1",9999);
//封装图片文件
BufferedInputStream bis=new BufferedInputStream(new FileInputStream("1.jpg"));
//封装通道内的流
BufferedOutputStream bos=new BufferedOutputStream(s.getOutputStream());
byte[] bys=new byte[1024];
int len=0;
while((len=bis.read(bys))!=-1){
bos.write(bys,0,len);
}
s.shutdownOutput();
//读取反馈
InputStream is=s.getInputStream();
byte[] b=new byte[1024];
int n;
n=is.read(b);
String sss=new String(b,0,n);
System.out.println(sss);
//释放资源
bis.close();
s.close();
}
}
public class UserThread extends Thread{
private Socket s;
public UserThread(Socket s){
this.s=s;
}
@Override
public void run() {
try{
//封装通道内流
BufferedInputStream bis=new BufferedInputStream(s.getInputStream());
// //封装图片文件
// BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("2.jpg"));
//为了防止多个客户端上传文件,出现名字相同的情况,做以下修改
String name=System.currentTimeMillis()+".jpg";
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(name));
byte[] bys=new byte[1024];
int len=0;
while((len=bis.read(bys))!=-1){
bos.write(bys, 0, len);
}
//给一个反馈
OutputStream os=s.getOutputStream();
os.write("图片上传成功!".getBytes());
bos.close();
s.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
public class ServerDemo {
public static void main(String[] args) throws IOException {
//创建服务器端Socket对象
ServerSocket ss=new ServerSocket(9999);
while(true){
Socket s=ss.accept();
new Thread(new UserThread(s)).start();
}
}
}