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){

        }

    }

}
时间: 2024-08-24 06:01:33

java===TCP(多线程多客户端同时上传字节数据:图片为例)的相关文章

Java实现HTML5拖拽文件上传

这是主页面 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+reques

webDAV服务的开启以及客户端的上传、下载、删除、新建文件夾、列表的代码(C#)

windows server 2003开启webDAV服务 1. 启动“IIS管理器”选择“WEB服务扩展”,选择“WEBDAV”的允许按钮启动WEBDAV功能 2.建立一个虚拟目录,对应到一个本地目录. 3.启动系统“服务”中的“WebClient”服务 参考网址 WebDAV文档rfc2518    http://www.ietf.org/rfc/rfc2518.txt webdav常用方法和概念总结   http://blog.csdn.net/mahongming/archive/200

html5 如何实现客户端验证上传文件的大小

在HTML 5中,现在可以在客户端进行文件上传时的校验了,比如用户选择文件后,可以 马上校验文件的大小和属性等.本文章向码农介绍html5 如何实现客户端验证上传文件的大小,感兴趣的码农可以参考一下. 在HTML 5中,现在可以在客户端进行文件上传时的校验了,比如用户选择文件后,可以马上校验文件的大小和属性等,这其实时得益于浏览器端新增的对文件的校验能力,其中支持HTML 5的浏览器,都会实现W3C实现的文件API标准,其中可以读取客户端文件的各种信息和参数. 下面的例子如下,首先是HTML <

JSch - Java实现的SFTP(文件上传详解篇) 转

JSch是Java Secure Channel的缩写.JSch是一个SSH2的纯Java实现.它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序. 本文只介绍如何使用JSch实现的SFTP功能. SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.SFTP 为 SSH的一部份,是一种传输文件到服务器的安全方式.SFTP是使用加密传输认证信息和传输

Sharepoint客户端对象模型上传附件

Sharepoint2010中引入了客户端对象模型(COM) 来加强外部对sharepoint站点信息的访问(sharepoint2007只能通过web service) SharePoint中有3种客户端对象模型: ECMAScript .NET托管客户端对象模型 Silverlight客户端对象模型 3种客户端对象模型都通过Client.svc来实现与服务器的交互,对于COM在此不做详细的说明,本节的学习目标是:通过客户端对象模型上传附件 在sharepoint常用于存储附件的容器有:Lib

关于Java网络爬虫---模拟txt文件上传操作。

业务需求是这样的,公司400业务中客户使用的,400电话号码,可以添加多个目的码你可以理解为转接号码: 这些配置的目的码我们会在网关服务器上配置成白名单,既拥有某些权限.先提出的要求是先添加或者变动目的码要及时同步到网关. 场景: 1.我们的网关服务器接受的白名单(目的码)是已txt文件上传的,数据按照制定的格式保存在txt里面. 2.利用Java网络爬虫模拟txt文件上传.------2018-4-7现在不写了,代码在公司电脑上明天总结一下在写. 原文地址:https://www.cnblog

Java项目中的下载 与 上传

使用超级链接下载,一般会在浏览器中直接打开,而不是出现下载框 如果要确保出现下载框下载文件,则需要设置response中的参数: 1是要设置用附件的方式下载 Content-Disposition: attachment; filename = 2要设定内容的MIME类型 Content-Type:application/x-msdownload 下载的页面代码: <!DOCTYPE html> <html> <head> <meta charset="

Java使用Commons-FileUpload组件实现文件上传最佳方案

学习的目标 使用commons-fileupload实现文件上传 使用commons-fileupload封装文件上传工具类 什么是commons-fileupload? The CommonsFileUploadpackage makes it easy to add robust, high-performance, file upload capability to your servlets and web applications. FileUpload parses HTTP req

java~gradle构建公用包并上传到仓库~使用私有仓库的包

在新的项目里使用仓库的包 上一讲中我们说了java~gradle构建公用包并上传到仓库,如何发布公用的非自启动类的包到私有仓库,而这一讲我们将学习如何使用这些包,就像我们使用spring框架里的功能包一样. 参考:http://www.zhyea.com/2018/04/24/gradle-repository-username-password.html?spm=a2c40.rdc_maven_repo.0.0.12fd3054jv5EgP 公司私有的maven仓库在访问时是需要用户名密码的.