当前位置: 首页 > news >正文

小白学习java第12天(下):网络编程

下面为了理解更加清楚,我就手搓代码进行实现了(简单进行解释,为了更加深刻,我就是用直接敲上去,因为代码看起来一段一段不好看):(以传输图片为例子)

java对于网络编程也有它自己的类,客户端就是Socket,服务端就是ServerSocket,两个进行连接

服务端:

1.首先你要创建在你这服务器上面的端口(前面我们结合介绍,ip是大楼,端口就是门牌号)

        ServerSocket serversocket = new ServerSocket(端口号);

2.我需要时刻监视的有没有客户端进行访问accept

        Socket accept = serversocket.accept();

3.我需要以流的形式进行对客户端放松的数据进行读取(IO流中的InputStream)

        InputStream inputStream = accept.getInputStream();

4.然后我们需要对读取出来的数据进行输出存储(io流的经典操作)

4.1首先创建要保存的文件目的地

        File file = new File("存放地址");

4.2对文件进行数据流的操作

        FileOutputStream fileOutputStream = new FileOutputStream(file);

4.3开始进行经典的字符转换

定义一个内存数组1kb

        byte[] buffer = new byte[1024]

定义长度

        int len;

循环遍历

        while((len =inputStream.read(buffer) != -1){

               fileOutputStream.write(buffer,0,len)

        }

5.关闭资源(为了写得更加详细我就没有用try-catch-resource这种格式)

字节输出流关闭

        fileOutputStream.close;

字节输出流关闭

        inputStream;

监视关闭

        accept.close;

连接关闭

        serverSocket.close;

-------------------------------------------------------------------------------------------------------------

客户端:

1.首先创建Socket对于服务器进行连接

        Socket socket = new Socket(InetAddress.getByName("服务器地址"),端口号);

2.创建一个输出流,输出到服务器上

        OutputStream outputStream = socket.getOutputStream();

3.读取你要复制到服务器上的文件

        File file = new File("存放地址");

        FileIntputStream fileInputStream = new FileInputStream(file);

4.然后就进行循环将读取的文件进行输出流进行输出

定义一个内存数组1kb

        byte[] buffer = new byte[1024]

定义长度

        int len;

循环遍历

        while((len = fileInputStream.read(buffer) != -1){

                outputStream.write(buffer,0,len)

        }

5.关闭资源

字节输出流关闭

        outputStream.close;

字节输出流关闭

        fileInputStream;

连接关闭

        socket.close;

终于结束了,中午没睡觉脑袋都晕呼呼的!结合下面这个图可以好好的看一下!

相关文章:

  • 第1个小脚本:英语单语按字母个数进行升序排序
  • Spark Core(2)
  • Java学习打卡-Day25-注解和反射、Class类
  • 除了 `task_type=“SEQ_CLS“`(序列分类),还有CAUSAL_LM,QUESTION_ANS
  • 分布式系统-脑裂,redis的解决方案
  • 2025年蓝桥杯B组题解
  • 深度剖析:架构评估的常用方法与应用
  • 当Browser Use遇见A2A:浏览器自动化与智能体协作的“冰与火之歌“
  • WindowsPE文件格式入门06.手写最小PE
  • 向上取整,向下取整和四舍五入
  • 安卓AssetManager【一】- 资源的查找过程
  • 【Java学习】Spring AI集成指南
  • 深入理解 v-if 指令及其使用方法
  • C++在Linux上生成动态库并调用接口测试
  • 七、Qt框架编写的多线程应用程序
  • JDK的卸载与安装
  • 【JavaScript——页面渲染】课程列表(蓝桥杯真题-2457)【合集】
  • 《从零搭建Vue3项目实战》(AI辅助搭建Vue3+ElemntPlus后台管理项目)零基础入门系列第十二篇(完结篇):数据统计功能实现
  • Java高性能并发利器-VarHandle
  • 【sgSpliter】自定义组件:可调整宽度、高度、折叠的分割线
  • 电子商务网站建设软件/app推广拉新平台
  • jsp做网站的流程/长沙网站排名推广
  • 公司网站建设公司排名/网络推广渠道排名
  • 学生党建网站建设/天津seo网络
  • wordpress.com.cn/长沙seo推广外包
  • 最早做视频播放网站/黄页网络的推广网站有哪些类型