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){
            
            }
    
        }
    
    }
  • 相关阅读:
    String判空效率比较
    myeclipse数据库逆向hibernate教程
    博客使用说明和我的学习心得(技术路线和书单)
    【小记】go如何判断key是否在map中
    MySQL必知必会笔记——MySQL其他操作
    MySQL必知必会笔记——查询的进阶知识
    MySQL必知必会笔记——查询的基础知识
    MySQL必知必会笔记-Mysql基本操作
    Linux学习笔记:Linux命令之权限管理命令
    Linux学习笔记:用户与用户组
  • 原文地址:https://www.cnblogs.com/wangyinxu/p/6917725.html
Copyright © 2011-2022 走看看