Java 网络编程 -- 基于TCP实现文件上传
2024-08-25 14:05:12
Java TCP 操作基本流程
一、创建服务器
1、指定端口, 使用serverSocket创建服务器
2、阻塞式连接 accept
3、操作:输入流 输出流
4、释放资源
二、创建客户端
1、使用Socket 创建客户端 + 服务器的ip和端口
2、操作:输入流 输出流
3、释放资源
实现文件上传:
客户端上传:
public class FileClient {
public static void main(String[] args) throws IOException {
System.out.println("=======client=======");
// 1、使用Socket 创建客户端+服务端Ip 和端口
Socket client = new Socket("localhost", 8888);
// 2、操作:文件拷贝:上传
InputStream is = new BufferedInputStream(new FileInputStream("src/张飞.jpg"));
OutputStream os = new BufferedOutputStream(client.getOutputStream());
byte[] flush = new byte[1024];
int len = -1;
while((len = is.read(flush)) != -1) {
os.write(flush, 0, len);
}
os.flush();
// 4、释放资源
os.close();
is.close();
client.close();
}
}
服务端接收:
public class FileServer {
public static void main(String[] args) throws IOException {
System.out.println("=======server=======");
// 1、指定端口创建服务器
ServerSocket server = new ServerSocket(8888);
// 2、阻塞式等待连接
Socket socket = server.accept();
// 3、操作:文件拷贝:存储
InputStream is = new BufferedInputStream(socket.getInputStream());
OutputStream os = new BufferedOutputStream(new FileOutputStream("src/copy.jpg"));
byte[] flush = new byte[1024];
int len = -1;
while((len = is.read(flush)) != -1) {
os.write(flush, 0, len);
}
os.flush();
// 4、释放资源
os.close();
is.close();
socket.close();
server.close();
}
}
最新文章
- Salesforce练习Case
- 分享自己写的JS版日期格式化和解析工具类,绝对好用!
- 【java学习笔记】字符串和Date的转换
- C#实现简单的委托异步调用
- ROS 多台电脑间进行通信
- nrf51822裸机教程-GPIO
- linux之let用法
- HTML (1)href与Action,get post
- 查询反模式 - 正视NULL值
- git 使用系列(二)---- 分支和合并
- 什么是tcp/ip
- 【Python实践-2】求一个或多个数的乘积
- 上传input中file文件到云端,并返回链接
- 有关C++模板inline的高性能在lambda与function的体现
- 一本通1585【例 1】Amount of Degrees
- Hadoop2源码分析-MapReduce篇
- Logback中文文档(一):介绍
- CookiesHelper
- 美团外卖iOS App冷启动治理
- laravel建立一个分组控制器和分组路由