java网络编程-- 文件传输
客户端
发送
package cn.usts.edu.lesson03;import java.io.*;
import java.net.InetAddress;
import java.net.Socket;public class TcpFileClientDemo {public static void main(String[] args) {try {Socket socket = new Socket(InetAddress.getByName("127.0.0.1"), 9999);OutputStream outputStream = socket.getOutputStream();// 读取文件FileInputStream fileInputStream = new FileInputStream("D:\\all_projects\\java_projects\\java_ij\\springMVC\\NetWork\\src\\cn\\usts\\edu\\lesson03\\hello.txt");//FileInputStream fileInputStream = new FileInputStream(new File("D:\\all_projects\\java_projects\\java_ij\\springMVC\\NetWork\\src\\cn\\usts\\edu\\lesson03\\hello.txt"));// 写出文件byte[] buffer=new byte[1024];int len;while ((len=fileInputStream.read(buffer))!=-1){outputStream.write(buffer,0,len);}// 如果没有这句,客户端又进入了等待接收的状态,可是服务器那边没有断开文件的连接,没有办法发送东西过来,所以要先切断输出流socket.shutdownOutput();// 服务器告诉客户端的话"文件接收完毕"ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();InputStream inputStream = socket.getInputStream();int len2;byte[] buffer2=new byte[1024];while ((len2=inputStream.read(buffer2))!=-1){byteArrayOutputStream.write(buffer2,0,len2);}System.out.println(byteArrayOutputStream.toString());//关闭byteArrayOutputStream.close();outputStream.close();fileInputStream.close();} catch (IOException e) {e.printStackTrace();}}
}
服务端
接收
package cn.usts.edu.lesson03;import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;public class TcpFileServerDemo {public static void main(String[] args) {try {ServerSocket serverSocket = new ServerSocket(9999);Socket socket = serverSocket.accept();//侦听InputStream inputStream = socket.getInputStream(); // 文件输入流// 读取字节流FileOutputStream fileOutputStream = new FileOutputStream("receive.txt");int len;byte[] buffer=new byte[1024];while ((len=inputStream.read(buffer))!=-1){fileOutputStream.write(buffer,0,len);}// 告诉客户端文件传输完毕OutputStream outputStream = socket.getOutputStream();outputStream.write("文件传输完毕".getBytes());// 关闭outputStream.close();fileOutputStream.close();inputStream.close();socket.close();serverSocket.close();} catch (IOException e) {e.printStackTrace();}}}
java网络编程-- 文件传输相关推荐
- java网络编程TCP传输—流操作—拿到源后的写入动作
在网络编程中的TCP传输里,拿到Socket的源后,应该怎么进行读写操作呢,下面我列举了两种方法,希望大家帮忙补充···· 1.利用byte数组作为一个缓冲区进行读写 客户端上传 1 //获取sock ...
- Java Socket编程 文件传输(客户端从服务器下载一个文件)
服务器(Server) [java] view plaincopy package com.socket.sample; import java.io.BufferedInputStrea ...
- java 网络编程之传输文件(一)
需要建两个类,分别作为服务器(接收文件)和客户端(发送文件) 1.服务器类: import java.io.*; import java.net.InetAddress; import java.ne ...
- 【Java】 Java网络编程总结
一.网络编程三要素: IP地址:每个设备在网络中的唯一标识. 端口号:每个程序在设备上的唯一标识. 协议:为计算机网络中进行数据交换而建立的规则或约定的集合. UDP: 面向无连接,数据不安全,速度 ...
- 实验五 Java网络编程及安全 实验报告 20135232王玥
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序与设计 班级:1352 姓名:王玥 学号:20135232 成绩: 指导 ...
- NIO详解(一):java网络编程IO总结(BIO、NIO、AIO)
1.基本概念 在Java网络通信中,最基本的概念就是Socket编程了.Socket又称"套接字" 向网络发出请求或者应答网络请求. Socket 和ServerSocket类库位 ...
- 【带你入门】java网络编程
网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在 学习网络编程以前,很多初学者可能觉得网络编 ...
- 迈入JavaWeb第一步,Java网络编程基础,TCP网络编程URL网络编程等
文章目录 网络编程概述 网络通信要素 要素一IP和端口号 要素二网络协议 TCP网络编程 UDP网络编程 URL网络编程 Java网络编程基础 网络编程概述 Java是Internet上的语言,它从语 ...
- Java 网络编程(超级详细)
前言:本文是初学Java网络编程时所记录的学习笔记,方便以后查阅学习,同时也作为资料总结分享给大家,如果有问题欢迎指出!! 1. 网络编程 1.1 网络编程基本概念 1.网络 将不同区域的电脑连接到一 ...
最新文章
- Python import 的用法
- 模板 - KM算法(O(n^3))(二分图最大权完美匹配)
- 自律到极致-人生才精致:第2期
- MyBatis+Spring MVC开发指南(一)
- Python每日一练(1):计算文件夹内各个文章中出现次数最多的单词
- 20220208--CTF刷题记录--6道简单的MISC题目
- URLEncode编码和URLDecode解码
- 对比学习有多火?文本聚类都被刷爆了…
- java链表的输出_Java输出链表倒数第k个节点
- c语言if全部用法,关于if的用法
- linux集群应用实战(更新完毕)
- Flutter进阶—网络和HTTP
- mantis修改mysql端口_(功能篇)回顾Bug管理系统Mantis优化改造经历(示例代码)
- Android studio显示红叉,提示Error:please select android sdk
- 使用STVP 下载STM32程序之后,弹出 Problem while trying to Run core of device. 的解决办法
- js前端缓存的几种方法
- 计算机组装要哪些硬件,电脑配件,小编教你电脑组装需要哪些配件
- 新能源汽车,车架号VIN码查询接口
- war包和jar包的区别
- 【LeetCode】1823. 找出游戏的获胜者 Find the Winner of the Circular Game
热门文章
- 十五、Gtk4-tfeapplication.c
- SQL Server、Oracle 如何清除指定SQL的执行计划
- 东北大学暑期acm夏令营第四天
- matlab计算产汇流,《产汇流计算》PPT课件
- Quartz任务调度框架之最全Quartz系统参数配置详解
- Heritrix Eclipse配置和使用
- 各种常见的博弈论 + 简单例题
- 记一次蓝屏的解决,错误代码IRQL_NOT_LESS_OR_EQUAL
- prometheus 报警规则
- 开放智能公司捐助180套嵌入式ARM套件助力南科大C/C++课程教学