java===TCP,多线程多客户端同时上传字节数据:图片为例

package net;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class UploadPicClient {
    public static void main(String[]args)throws IOException,UnknownHostException{
        Socket s = new Socket("192.168.1.2",7856);
        FileInputStream fis = new FileInputStream("e:\\data\\1.jpg");
        OutputStream os = (s.getOutputStream());
        int len = 0 ;
        byte[]buf = new byte[1024];
        while((len=fis.read(buf))!=-1){
             os.write(buf,0,len);
             os.flush();
             
        } 
        s.shutdownOutput();
        InputStream in = (s.getInputStream());
        byte[]bufin = new byte[1024];
        while((len=in.read(bufin))!=-1){
               System.out.println(new String(bufin,0,len));
        }
        fis.close();
        s.close();
  }
}
package net;

import java.io.*;
import java.net.*;


public class UploadPicServer {
     public static void main(String[]args)throws IOException{
         ServerSocket ss = new ServerSocket(7856);
         while(true){
              Socket s = ss.accept();
              new Thread(new Task(s)).start();
         }
         
         
   }
}
package net;

import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class Task implements Runnable {
    private Socket s;
    public Task(Socket s){
          this.s=s;
    }
    @Override
    public void run() {
        int count=0;
        try{
             File dir = new File("e:\\pic");
             if(!dir.exists()){
                  dir.mkdirs();    
             }
             String ip = s.getInetAddress().getHostAddress();
             File file = new File(dir,ip+".jpg");
             while(file.exists()){
                  file = new File(dir,ip+"("+(++count)+")"+".jpg");
             }
           InputStream in = s.getInputStream();
           FileOutputStream fos = new FileOutputStream(file);
           byte[]buf = new byte[1024];
           int len = 0;
           while((len=in.read(buf))!=-1){
                fos.write(buf,0,len);
                fos.flush();
                
           }
           OutputStream out = s.getOutputStream();
           out.write("上传成功".getBytes());
           out.flush();
           s.close();
           fos.close();
        }catch(Exception e){
        
        }

    }

}