A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*\
为了可以让多个客服同时并发访问服务端
那么服务端最好就是将每个客服端封装成一个单独的 线程中,这样就可以同时处理多个客服端
*/
import java.io.*;
import java.net.*;
//第四个客户
class  LoadPicClien4
{
public static void main(String[] args) throws Exception
{
  if(args.length!=1)
  {
  System.out.println("请选择一个jpg文件");
  return ;
  }
  File file=new File(args[0]);
  if(!(file.isFile()&&file.exists()))
  {
  System.out.println("该文件不存在");
  return;
  }
  if(!file.getName().endsWith(".jpg"))
  {
  System.out.println("该文件不是jpg文件,请从新上传");
  return;
  }
  if(file.length()>1024*1024*6)
  {
  System.out.println("请上传6M以内的文件");
  return;
  }
  Socket s=new Socket("192.168.2.71",10009);
  FileInputStream fis=new FileInputStream(file);
  OutputStream os=s.getOutputStream();//从套接字获取输出流
  byte[] by=new byte[1024];
  int len=0;
  while ((len=fis.read(by))!=-1)
  {
  os.write(by,0,len);
  }
  s.shutdownOutput();
  InputStream is=s.getInputStream();//从套接字获取输入流
  byte[] bys=new byte[1024];//创建一个缓冲区
  int lens=is.read(bys);
  System.out.println(new String(bys,0,lens));
  s.close();
  fis.close();
}
}
//第三个客户
class  LoadPicClien3
{
public static void main(String[] args) throws Exception
{
  if(args.length!=1)
  {
  System.out.println("请选择一个jpg文件");
  return ;
  }
  File file=new File(args[0]);
  if(!(file.isFile()&&file.exists()))
  {
  System.out.println("该文件不存在");
  return;
  }
  if(!file.getName().endsWith(".jpg"))
  {
  System.out.println("该文件不是jpg文件,请从新上传");
  return;
  }
  if(file.length()>1024*1024*6)
  {
  System.out.println("请上传6M以内的文件");
  return;
  }
  Socket s=new Socket("192.168.2.71",10009);
  FileInputStream fis=new FileInputStream(file);
  OutputStream os=s.getOutputStream();//从套接字获取输出流
  byte[] by=new byte[1024];
  int len=0;
  while ((len=fis.read(by))!=-1)
  {
  os.write(by,0,len);
  }
  s.shutdownOutput();
  InputStream is=s.getInputStream();//从套接字获取输入流
  byte[] bys=new byte[1024];//创建一个缓冲区
  int lens=is.read(bys);
  System.out.println(new String(bys,0,lens));
  s.close();
  fis.close();
}
}
//第二个客户
class  LoadPicClien2

public static void main(String[] args) throws Exception
{
  if(args.length!=1)
  {
  System.out.println("请选择一个jpg文件");
  return ;
  }
  File file=new File(args[0]);
  if(!(file.isFile()&&file.exists()))
  {
  System.out.println("该文件不存在");
  return;
  }
  if(!file.getName().endsWith(".jpg"))
  {
  System.out.println("该文件不是jpg文件,请从新上传");
  return;
  }
  if(file.length()>1024*1024*6)
  {
  System.out.println("请上传6M以内的文件");
  return;
  }
  Socket s=new Socket("192.168.2.71",10009);
  FileInputStream fis=new FileInputStream(file);
  OutputStream os=s.getOutputStream();//从套接字获取输出流
  byte[] by=new byte[1024];
  int len=0;
  while ((len=fis.read(by))!=-1)
  {
  os.write(by,0,len);
  }
  s.shutdownOutput();
  InputStream is=s.getInputStream();//从套接字获取输入流
  byte[] bys=new byte[1024];//创建一个缓冲区
  int lens=is.read(bys);
  System.out.println(new String(bys,0,lens));
  s.close();
  fis.close();
}
}
//第一个客户
class  LoadPicClien1
{
public static void main(String[] args) throws Exception
{
  if(args.length!=1)
  {
  System.out.println("请选择一个jpg文件");
  return ;
  }
  File file=new File(args[0]);
  if(!(file.isFile()&&file.exists()))
  {
  System.out.println("该文件不存在");
  return;
  }
  if(!file.getName().endsWith(".jpg"))
  {
  System.out.println("该文件不是jpg文件,请从新上传");
  return;
  }
  if(file.length()>1024*1024*6)
  {
  System.out.println("请上传6M以内的文件");
  return;
  }
  Socket s=new Socket("192.168.2.71",10009);
  FileInputStream fis=new FileInputStream(file);
  OutputStream os=s.getOutputStream();//从套接字获取输出流
  byte[] by=new byte[1024];
  int len=0;
  while ((len=fis.read(by))!=-1)
  {
  os.write(by,0,len);
  }
  s.shutdownOutput();
  InputStream is=s.getInputStream();//从套接字获取输入流
  byte[] bys=new byte[1024];//创建一个缓冲区
  int lens=is.read(bys);
  System.out.println(new String(bys,0,lens));
  s.close();
  fis.close();
}
}
class ThreadLoad implements Runnable
{
private Socket s;
ThreadLoad(Socket s)
{
this.s=s;
}
public void run()
{
  int count=1;
  String ip=s.getInetAddress().getHostAddress();  
try
{
  InputStream is=s.getInputStream();//从套接字获取输入流
  File file=new File(ip+"("+(count)+")"+".jpg");
  while(file.exists())
    file=file=new File(ip+"("+(count++)+")"+".jpg");
  FileOutputStream fos=new FileOutputStream(file);
  byte[] by=new byte[1024];
  int len=0;
  while ((len=is.read(by))!=-1)
  {
   fos.write(by,0,len);
  }
  OutputStream out =s.getOutputStream();
  out.write("上传成功".getBytes());     
  s.close();
  
  fos.close();
}
catch (Exception e)
{
  throw new RuntimeException("上传失败");
}


}

}
class  LoadPicServer
{
public static void main(String[] args) throws Exception
{
  ServerSocket ss=new ServerSocket(10009);
  while (true)
  {
  Socket s=ss.accept();//获取所有接收到的 数据源
  new Thread(new ThreadLoad(s)).start();//没收到一个客服端,请求就创建一个线程
  }
  
}
}

评分

参与人数 1技术分 +1 收起 理由
杨志 + 1 代码太多!贴核心代码就好!

查看全部评分

3 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
许个夸奖了,技术556了,是我几十倍,我向你学习才对。
回复 使用道具 举报
发错了是“哥”才对
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马