博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TCP通信(上传文件)
阅读量:4325 次
发布时间:2019-06-06

本文共 2113 字,大约阅读时间需要 7 分钟。

package demo04;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;public class TCPclient {    public static void main(String[] args) throws IOException {        //1.创建socket对象,连接服务器        Socket s =new Socket("127.0.0.1", 8765);        //2.通过套接字获取输出流        OutputStream out =s.getOutputStream();        //3.获取数据源        FileInputStream fis =new FileInputStream("D:\\test\\aaa.png");        //4.读数据        int len =0;        byte [] b =new byte [1024];        while((len =fis.read(b))!=-1){            //写入目的地            out.write(b,0,len);        }        s.shutdownOutput();        //接受服务器回复        InputStream in =s.getInputStream();        len =in.read(b);        System.out.println(new String(b ,0,len));        //释放资源        fis.close();        s.close();    }}
package demo04;import java.io.File;import java.io.FileNotFoundException;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;import org.xml.sax.InputSource;public class TCPserver{    public static void main(String[] args) throws IOException {        //1.创建服务器套接字绑定接口        ServerSocket ser =new ServerSocket(8765);        //2.接受套接字对象        Socket s =ser.accept();        //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";        FileOutputStream 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());        //释放资源        fos.close();        s.close();        ser.close();    }    }

 

转载于:https://www.cnblogs.com/Jxliu/p/9253425.html

你可能感兴趣的文章
阶段3 2.Spring_09.JdbcTemplate的基本使用_3 JdbcTemplate在Dao中的使用
查看>>
阶段3 2.Spring_09.JdbcTemplate的基本使用_5 JdbcTemplate在spring的ioc中使用
查看>>
阶段3 2.Spring_10.Spring中事务控制_2 作业-基于注解的AOP实现事务控制及问题分析_上...
查看>>
阶段3 2.Spring_10.Spring中事务控制_5 spring事务控制的代码准备
查看>>
阶段3 2.Spring_10.Spring中事务控制_4 spring中事务控制的一组API
查看>>
阶段3 2.Spring_10.Spring中事务控制_7 spring基于注解的声明式事务控制
查看>>
阶段3 2.Spring_10.Spring中事务控制_6 spring基于XML的声明式事务控制-配置步骤
查看>>
阶段3 2.Spring_10.Spring中事务控制_9 spring编程式事务控制1-了解
查看>>
阶段3 2.Spring_10.Spring中事务控制_8 spring基于纯注解的声明式事务控制
查看>>
阶段3 3.SpringMVC·_01.SpringMVC概述及入门案例_07.入门案例中使用的组件介绍
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_1 请求参数绑定入门
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_2 请求参数绑定实体类型
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_4 请求参数绑定集合类型
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_3 配置解决中文乱码的过滤器
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_6 自定义类型转换器代码编写
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_5 自定义类型转换器演示异常
查看>>
阶段3 3.SpringMVC·_03.SpringMVC常用注解_1 RequestParam注解
查看>>
阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_7 获取Servlet原生的API
查看>>
阶段3 3.SpringMVC·_03.SpringMVC常用注解_2 RequestBody注解
查看>>
阶段3 3.SpringMVC·_03.SpringMVC常用注解_3 PathVariable注解
查看>>