上传服务器(多线程)

package demo05;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Random;

public class UPload implements Runnable {
    private Socket s;
    private FileOutputStream fos;

    public UPload(Socket s) {
        this.s = s;
    }

    public void run() {
        try {
            // 3.获取输入流
            InputStream in = s.getInputStream();
            // 4.获取文件夹,如果不存在就创建
            File f = new File("f:\\aaa");
            if (!f.exists()) {
                f.mkdirs();
            }
            // 5.创建文件输出流
            String filename = "oracle" + System.currentTimeMillis() + new Random().nextInt(99999) + ".png";
            fos = new FileOutputStream(f + File.separator + filename);
            // 6.写入数据
            byte[] b = new byte[1024];
            int len = 0;
            while ((len = in.read(b)) != -1) {
                fos.write(b, 0, len);
            }

            // 服务器给客服端回复(上传成功)
            OutputStream out = s.getOutputStream();
            out.write("上传成功".getBytes());

        } catch (Exception ex) {

            ex.printStackTrace();

        } finally {

            try {
                // 释放资源
                fos.close();
                s.close();
            } catch (IOException e) {

                e.printStackTrace();
            }

        }

    }

}
package demo05;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class test {
    public static void main(String[] args) throws IOException {
        ServerSocket ser =new ServerSocket(8888);
        while(true){
        Socket s =ser.accept();
        UPload u =new UPload(s);
        Thread t =new Thread(u);
        t.start();
        }

    }
}

原文地址:https://www.cnblogs.com/Jxliu/p/9253430.html

时间: 2024-11-01 20:16:03

上传服务器(多线程)的相关文章

java多线程文件上传服务器

描述: (1)jdk自带线程池见 JDK自带线程池配置 (2)此上传文件服务器中上传文件的后缀名通过第一段缓冲字符流传递,此缓冲字符流大小为1024,在文件接收端以1024接收.处理. 1.服务器代码如下(使用jdk自带线程池): 1 /** 2 * 服务器处理多线程问题 3 * 4 * 1.因为服务器是要很多人访问的,因此里面一定要用多线程来处理,不然只能一个人一个人的访问,那还叫Y啥服务器 5 * 6 * 2,拿上面这个文件上传的例子来说,它将每个连接它的用户封装到线程里面去,把用户要执行的

多线程 网络编程 文件上传案例多线程

Day13 多线程 3).多线程的好处: 提高程序的运行效率,提高用户的体验度. 创建新的线程: *    定义类继承Thread *    重写方法run *    创建Thread子类的对象 *    调用子类对象的方法 start() * *  为什么继承Thread *    Thread类是线程对象类 *    继承了Thread,子类也是线程对象 * *  为什么重写run *    Sun工程师,不清楚其他人员用线程做什么 *    全部写在run中 * *  为什么调用start

优化Recorder H5录音:可边录边转码上传服务器,支持微信提供Android IOS Hybrid App源码

目录 一.Recorder H5录音库的特性 (1)浏览器支持 (2)功能支持 二.使用预览截图 (1)移动端H5 (2)IOS Hybrid App (3)Android Hybrid App 三.应用场景 四.优化过程记录 (1)为什么要升级优化 (2)开始使用Web Worker加速转码 (3)剩下的问题 五.Hybrid App存在的意义 六.更多支持 Recorder H5 GitHub开源库随着支持功能的增多,音频转码处理效率渐渐的跟不上需求了,近期抽时间对音频转码部分进行了升级优化

c# 通过解析mp3规范命名并上传服务器

引用using Shell32; private void Open_Click(object sender, RoutedEventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "MP3 Files(.mp3)|*.mp3|WMA Files(*.wma)|*.WMA"; //ofd.Multiselect = true; //允许多选 ofd.RestoreDirectory = true; //

网站上传服务器出现:Server Error in '/' Application错误

本地网站上传服务器后出现以下错误: Server Error in '/' Application. Runtime Error Description: An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed remotely

eclipse导出文件上传服务器

[1]导出     选择项目    文件导出 输入导出路径如f盘ftp文件夹下 [2]利用scr上传服务器工具 上传到 home/tomcat/app/项目名称/ 不导入upload文件 [待完善]

scp. -本地文件上传服务器

scp 命令可以将本地文件上传服务器,或者将服务器上的文件下载到本地, 1.  上传服务器: scp [本地文件目录]  [服务器用户名]@[服务器名]:/[服务器上文件路径] 比如 scp /Documents/test.txt [email protected]服务器名:/home/optadmin/tmp/   将文件test.txt文件放到服务器上的tmp目录下 2.  下载本地 将服务器上的文件下载到本地时,只需要将上述 的两个路径互换即可 比如 scp  [email protect

idea指令打包以及上传服务器

跳过测试打包指令:mvn clean package -Dmaven.test.skip=true 上传服务器指令:scp target/项目名.jar [email protected]:/opt/javaapps 原文地址:https://www.cnblogs.com/sy-zl/p/9882729.html

IOS 视频上传服务器

//上传视频 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];    manager.requestSerializer.timeoutInterval = 20;    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/plain", @"application/json",