• 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){
            
            }
    
        }
    
    }
  • 相关阅读:
    [LeetCode] 852. Peak Index in a Mountain Array
    [LeetCode] 221. Maximal Square
    [LeetCode] 260. Single Number III
    [LeetCode] 532. K-diff Pairs in an Array
    [LeetCode] 1417. Reformat The String
    [LeetCode] 621. Task Scheduler
    [LeetCode] 454. 4Sum II
    [LeetCode] 18. 4Sum
    [LeetCode] 369. Plus One Linked List
    [LeetCode] 380. Insert Delete GetRandom O(1)
  • 原文地址:https://www.cnblogs.com/wangyinxu/p/6917725.html
Copyright © 2020-2023  润新知