使用socket进行服务端与客户端传文件的方法
发布时间 - 2026-01-11 02:51:08 点击率:次逻辑:

1.客户端将需要查找的文件名以流的形式传给服务端
2.服务端接受客户端的连接,把流转化为字符串,进行一个目录的遍历,查找是否存在需要的文件,若未找到,则输出未找到,若找到,则将文件转化为流,传给客户端
3.客户端准备接受,将服务端传过来的流转化为文件,存储下载。
4,至此,完成一个简单的客户端与服务端传输文件的小栗子~
Client.Java
package com.ysk;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
public class Client {
public static void main(String[] args) {
try {
Socket socket = new Socket("127.0.0.1", 5555);
OutputStream os = socket.getOutputStream();// 字节输出流
PrintWriter pw = new PrintWriter(os);
pw.write("aa.txt");//输入需要搜索的文件名
pw.flush();
socket.shutdownOutput();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String a = "";
String temp = "";
while ((temp = in.readLine()) != null) {
a += temp;
}
PrintWriter out = new PrintWriter(new OutputStreamWriter(new FileOutputStream("src\\asb.txt")));
out.write(a);
out.flush();
out.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
}
}
}
Server.java
package com.ysk;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
static ServerSocket serverSocket;
public static void main(String[] args) {
try {
serverSocket = new ServerSocket(5555);
System.out.println("***服务器即将启动,等待客户端的连接***");
Socket socket = serverSocket.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String file = br.readLine();
findFile("src", file);
if (result) {
System.out.println("已找到" + file);
File f = new File(file);
// File copyfile = new File("src\\file", "bb.txt");
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(filepath + file)));
System.out.println(filepath + file);
String a = "";
String temp = "";
while ((temp = in.readLine()) != null) {
a += temp;
}
PrintWriter out = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
out.write(a);
out.flush();
socket.shutdownOutput();
} else {
System.out.println("未找到文件");
}
} catch (IOException e) {
e.printStackTrace();
}
}
需自备aa.txt,这种资源文件,以便测试。
总结
以上所述是小编给大家介绍的使用socket进行服务端与客户端传文件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# socket客户端和服务端
# socket
# 服务端
# 客户端
# 传文件
# Java基于socket实现的客户端和服务端通信功能完整实例
# Java编程Socket实现多个客户端连接同一个服务端代码
# 基于Java的Socket多客户端Client-Server聊天程序的实现
# 详解基于java的Socket聊天程序——服务端(附demo)
# 客户端Socket与服务端ServerSocket串联实现网络通信
# 未找到
# 小编
# 在此
# 遍历
# 给大家
# 转化为
# 所述
# 给我留言
# 感谢大家
# 是否存在
# 则将
# 疑问请
# 有任何
# 传输文件
# import
# io
# OutputStreamWriter
# IOException
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
如何用AWS免费套餐快速搭建高效网站?
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
Laravel Fortify是什么,和Jetstream有什么关系
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
制作旅游网站html,怎样注册旅游网站?
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
昵图网官网入口 昵图网素材平台官方入口
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
微信h5制作网站有哪些,免费微信H5页面制作工具?
Laravel定时任务怎么设置_Laravel Crontab调度器配置
laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
如何打造高效商业网站?建站目的决定转化率
Laravel如何使用模型观察者?(Observer代码示例)
JS实现鼠标移上去显示图片或微信二维码
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
详解Android——蓝牙技术 带你实现终端间数据传输
香港服务器租用费用高吗?如何避免常见误区?
微信小程序 require机制详解及实例代码
🚀拖拽式CMS建站能否实现高效与个性化并存?
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
如何在 Pandas 中基于一列条件计算另一列的分组均值
Laravel如何使用Eloquent进行子查询
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
如何用已有域名快速搭建网站?
青岛网站建设如何选择本地服务器?
Laravel怎么实现验证码(Captcha)功能
如何在企业微信快速生成手机电脑官网?
公司网站制作价格怎么算,公司办个官网需要多少钱?
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
详解jQuery中基本的动画方法
黑客如何利用漏洞与弱口令入侵网站服务器?
如何利用DOS批处理实现定时关机操作详解
如何在建站之星绑定自定义域名?
Laravel如何实现API速率限制?(Rate Limiting教程)
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
香港服务器选型指南:免备案配置与高效建站方案解析
如何用虚拟主机快速搭建网站?详细步骤解析
php 三元运算符实例详细介绍
独立制作一个网站多少钱,建立网站需要花多少钱?
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
如何快速辨别茅台真假?关键步骤解析
android nfc常用标签读取总结
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
Laravel模型关联查询教程_Laravel Eloquent一对多关联写法

