首页 > 其他分享 >文件上传

文件上传

时间:2024-05-07 18:11:59浏览次数:141  
标签:文件 java socket new import close 上传 Socket

服务器端

package programming;

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

public class TcpServer1 {
    public static void main(String[] args) throws IOException {
        //1.创建服务
        ServerSocket serverSocket = new ServerSocket(9000);
        //2.监听客户端的连接
        Socket socket = serverSocket.accept();//阻塞式监听,会一直等待客户端连接
        //3.获取输入流
        InputStream is = socket.getInputStream();
       // 4.文件输出
        FileOutputStream fos = new FileOutputStream(new File("receive.jpg"));
        byte[] buffer = new byte[1024];
        int len;
        while ((len = is.read(buffer))!= -1){
            fos.write(buffer,0,len);
        }
        //通知客户端我接收完毕了
        OutputStream os = socket.getOutputStream();
        os.write("接收已完成".getBytes());
        fos.close();
        is.close();
        socket.close();
        serverSocket.close();
    }
}

客户端

package programming;

import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

public class TcpClient1 {
    public static void main(String[] args) throws Exception {
        //1.创建一个Socket连接
        Socket socket = new Socket(InetAddress.getByName("127.0.0.1"),9000);
        //2.创建一个输出流
        OutputStream os = socket.getOutputStream();
       // 3.读取文件
        FileInputStream fis = new FileInputStream(new File("a.jpg"));
        //4.将文件内容写入输出流
        byte[] buffer = new byte[1024];
        int len;
        while ((len = fis.read(buffer))!= -1){
            os.write(buffer,0,len);
        }
        //通知服务器,文件发送完毕
        socket.shutdownOutput();//我已经传输完毕了
        //确定服务器接收完毕,才能断开连接
        InputStream inputStream = socket.getInputStream();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        byte[] buffer1 = new byte[1024];
        int len1;
        while ((len1 = inputStream.read(buffer1))!= -1){
            baos.write(buffer1,0,len1);
        }
        System.out.println(baos.toString());
        //5.关闭资源
        inputStream.close();
        baos.close();
        fis.close();
        os.close();
        socket.close();
    }
}

标签:文件,java,socket,new,import,close,上传,Socket
From: https://www.cnblogs.com/gang-pao/p/18178107

相关文章

  • python读取nc文件
    使用netCDF4库读取nc文件#***1数据读取与处理#打开NetCDF文件GA_id=nc.Dataset('taiwan_GA.nc','r')DOV_E_id=nc.Dataset('taiwan_DOV_E.nc','r')DOV_N_id=nc.Dataset('taiwan_DOV_N.nc','r')VGG_id=nc.Dat......
  • C#应用下的CSV文件写入和读出
    1.建立DataTable类型DataTablemy_accurdt;my_accurdt=newDataTable(DateTime.Now.ToString("yMMddHHmm")+"_AccurData");2.创建DataTable的列和行//列my_accurdt.Columns.Add(newDataColumn("Oder",typeof(int)));my_accurdt.Columns.Ad......
  • [网鼎杯 2020 白虎组]PicDown linux文件工作原理
    今天遇到个毫无头绪的题,记录一下过程。进入页面发现输入框,参数为url,那就试试文件读取。看看环境变量。其中PWD=/app,有可能存在app.py,试试吧。猜对了,运气吧~(做完后才发现的T-T)这里看其他wp说是在linux读取当前进程执行命令/proc/self/cmdline发现了看看app.py吧。点......
  • 加密压缩文件zip&tar
    加密一些机密的文件使用zip加密加密过程#zip-repackageTest.zippackageTest#或者写为明文密码zip-rPyourpasswordpackageTest.zippackageTestEnterpassword:Verifypassword:adding:packageTest/(stored0%)adding:packageTest/a.txt(stored0%)add......
  • linux 查看文件是否被占用
    在Linux系统中,若要查看一个文件或目录是否被占用(即是否被进程打开或正在使用),可以使用以下几个命令:方法一:使用lsof命令lsof+D/path/to/directory/or/file这条命令会显示指定目录及其子目录下所有被打开的文件。如果你想查看某个特定文件是否被占用,可以这样操作:lsof/path/......
  • python-magic:检测文件的MIME类型
    简介python-magic是一个Python封装的文件类型识别库,它基于libmagic库。libmagic是一个强大的文件类型识别工具,它可以分析文件内容来确定文件的MIME类型。通过python-magic,我们可以在Python脚本中轻松地调用这个功能,无论是用于文件处理、上传下载的文件类型检查,还是在自动化脚本中......
  • linux网络-网络文件共享服务
    存储类型存储类型分为三种:直连式存储:Direct-AttachedStorage,简称DAS网络附加存储:Network-AttachedStorage,简称NAS存储区域网络:StorageAreaNetwork,简称SAN三种存储架构的应用场景:DAS虽然比较古老了,但是还是很适用于那些数据量不大,对磁盘访问速度要求较高的中小企业;NA......
  • 最高院---发包人对质量问题单方委托第三方单位的,第三方单位所作意见不足以单独对抗竣
    (2020)最高法民申3438号  银川双兴昇工贸有限公司、长枫建设集团有限公司建设工程施工合同纠纷再审审查与审判监督申请人主张:双兴昇公司申请再审称,1.一、二审判决认定事实错误。长枫公司、长枫宁夏分公司在合同履行过程中存在偷工减料、未按图施工的违约行为,案涉钢结构厂房不符......
  • Playwright Python 下载文件
    最强自动化测试框架Playwright(9)-下载文件_playwright下载文件-CSDN博客fromplaywright.sync_apiimportsync_playwrightdefrun(playwright):chromium=playwright.chromiumbrowser=chromium.launch(headless=False,slow_mo=3000)page=browser.new_p......
  • 5.5文件上传-WAF绕过
    一、WAF绕过(明确有文件上传)1、上传参数中,可修改参数Content-Dispositin:一般可改name:表单参数,不可更改filename:文件名,可更改Content-Type:文件mime,视情况可改2、常用方法数据溢出-防匹配(xxx...上传大量垃圾数据名写入数据包)符合变异-防匹配(''';)"qq.php",'qq.php......