zoukankan      html  css  js  c++  java
  • 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){
            
            }
    
        }
    
    }
  • 相关阅读:
    五、生产者消费者模型_ThreadLocal
    四、多线程基础-线程池的创建和使用
    spring根据beanName获取bean
    spring容器的功能扩展
    机甲大师S1机器人编程学习,Windows 10 安装Scratch和简单实例学习
    如何建设高可用系统
    详解Condition的await和signal等待/通知机制
    从源码角度彻底理解ReentrantLock(重入锁)
    MySQL 分库分表及其平滑扩容方案
    机甲大师S1机器人编程学习
  • 原文地址:https://www.cnblogs.com/wangyinxu/p/6917725.html
Copyright © 2011-2022 走看看