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){
            
            }
    
        }
    
    }
  • 相关阅读:
    Response.Redirect 打开新窗体的两种方法
    linux下coredump的产生及调试方法
    AlertDialog具体解释
    数据仓库与数据挖掘的一些基本概念
    JS中setTimeout()的使用方法具体解释
    iOS开发- 查询项目代码行数
    STM32学习之路-LCD(3)<显示图片>
    谷歌技术"三宝"之MapReduce
    [ffmpeg 扩展第三方库编译系列] 关于libvpx mingw32编译问题
    javascript笔记
  • 原文地址:https://www.cnblogs.com/wangyinxu/p/6917725.html
Copyright © 2011-2022 走看看