首页 > 其他分享 >TCP文件上传实现

TCP文件上传实现

时间:2023-03-22 19:33:09浏览次数:29  
标签:文件 java socket import TCP new close 上传 Socket

package edu.wtbu;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
//服务器端
public class Demo05 {
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("b.jpg"));
byte[] bytes = new byte[1024];
int len;
while ((len=is.read())!=-1){
fos.write(bytes,0,len);
}


//通知客户端已经接收完毕了
OutputStream os = socket.getOutputStream();
os.write("我接收完毕了".getBytes());
//5.关闭资源

fos.close();
is.close();
socket.close();
serverSocket.close();
}

}


package edu.wtbu;

import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
//客户端
public class Demo04 {
public static void main(String[] args) throws IOException {
//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[] bytes = new byte[1024];
int len;
while ((len=fis.read(bytes))!=-1){
os.write(bytes,0,len);
}
//通知服务器,我已经结束了
socket.shutdownOutput();//我已经传输完了
//确定服务器接收完毕,才断开连接
InputStream is = socket.getInputStream();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] bytes1 = new byte[1024];
int len2;
while ((len2=is.read(bytes1))!=-1){
baos.write(bytes1,0,len2);
}
System.out.println(baos.toString());

//5.关闭资源
baos.close();
is.close();
fis.close();
os.close();
socket.close();
}
}

标签:文件,java,socket,import,TCP,new,close,上传,Socket
From: https://www.cnblogs.com/123456dh/p/17245154.html

相关文章

  • js 截取文件后缀名的3种方式
    1.情景展示当我们使用文件上传插件,将文件上传到后台,有时候需要上传的不止一种文件类型,即:图片或着PDF;我们可能需要根据不同文件类型,提供不同的预览地址。如何根据文件......
  • 网页超大文件上传解决方案:分片断点上传(一)
    ​ 4GB以上超大文件上传和断点续传服务器的实现随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求。但是在......
  • 添加右键检验文件hash
    去除代码点击查看代码WindowsRegistryEditorVersion5.00[-HKEY_CLASSES_ROOT\*\shell\hash]文件另存为reg后缀执行注意文件编码方式utf8带签名点击查看代......
  • Docker限制日志文件大小办法
    1.新建/etc/docker/daemon.json,如果存在就不用重新创建了,内容如下{"log-driver":"json-file","log-opts":{"max-size":"500m","max-file":"3"}}max-size=500......
  • 解决SQL映射文件的警告提示
    产生原因:Idea和数据库没有建立链接,不识别表的信息解决方式:在Idea中配置MySQL数据库连接   ......
  • Uploadifive 批量文件上传
    Uploadifive批量文件上传_uploadifive多个上传按钮_asing1elife的博客-CSDN博客 属性auto-Boolean-true当文件被添加到上传队列时,会自动上传buttonClass-String......
  • python---打包exe文件运行自动化
    前言我们正常执行自动化测试的代码都是在有python环境和对应的python库的环境中进行执行的,那么如何能否将我们的自动化测试代码放到没有python环境的电脑上进行运行呢?这个......
  • SpringCloud 超大文件上传解决方案:分片断点上传(一)
    ​ HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="up6.index" %><!DOCTYPE html PUBLIC "-//W3C//DTDXH......
  • TCP实现聊天
    packageedu.wtbu;importjava.io.IOException;importjava.io.OutputStream;importjava.net.InetAddress;importjava.net.Socket;importjava.net.UnknownHostExceptio......
  • 安装软件提示 "无法完成操作, 因为文件包含病毒或潜在的垃圾软件" 如何处理
    在Windows端安装一些小众电脑软件的时候,经常会遇到无法安装的问题,比较常见的情况是会提示"无法完成操作,因为文件包含病毒或潜在的垃圾软件",或者提示"不能执行文件,系......