Tcpベースでファイルをアップロード
2229 ワード
import java.io.*;
import java.net.*;
import java.lang.*;
public class PicLoadTestCZ{}
/*
。。
*/
class Client{
public static void main(String []args)throws Exception{
while(args.length>1){
System.out.println(" 。。");
return ;
}
String filename=args[0];
File file=new File(filename);
while(!file.exists()){
System.out.println(" 。。");
return ;
}
while(file.length()>(1024*1024*3)){
System.out.println(" 。。");
return;
}
while(!file.getName().endsWith(".gif")){
System.out.println(" ,。。。");
return;
}
Socket s=new Socket("127.0.0.1",10009);
OutputStream out=s.getOutputStream();
FileInputStream filein=new FileInputStream(file);//
byte buf[]=new byte[1024];
int len=0;
while((len=filein.read(buf))!=-1){
out.write(buf,0,len);
//System.out.println(" ");
}
s.shutdownOutput();
InputStream in=s.getInputStream();
byte []buts=new byte[1024];
int len1=0;
len=in.read(buf);
String str=new String(buf,0,len);
System.out.println(str);
filein.close();
}
}
class PicLoad implements Runnable{
private Socket s;
public PicLoad(Socket s){
this.s=s;
}
public void run(){
try{
InputStream in=s.getInputStream();
FileOutputStream fileout=null;
String ip=s.getInetAddress().getHostAddress();
File file=new File("e:\\"+ip+".bmp");
int count=1;
while(file.exists())
file=new File("e:\\"+ip+"("+(count++)+").bmp");
fileout=new FileOutputStream(file);
byte buf[]=new byte[1024];
int len=0;
while((len=in.read(buf))!=-1){
fileout.write(buf,0,len);
}
OutputStream out=s.getOutputStream();
out.write(" 。。。".getBytes());
out.close();
fileout.close();
}catch(Exception e){
e.toString();
}
}
}
class Server{
public static void main(String []args)throws Exception{
ServerSocket ss=new ServerSocket(10009);
while(true){
Socket s=ss.accept();
new Thread(new PicLoad(s)).start();
}
}
}
ファイルアップロードの原理もそうです...クライアントからサーバにアップロードします...