/*\
为了可以让多个客服同时并发访问服务端
那么服务端最好就是将每个客服端封装成一个单独的 线程中,这样就可以同时处理多个客服端
*/
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();//没收到一个客服端,请求就创建一个线程
}
}
}
|