利用socket进行服务端与客户端传文件
来源:互联网 发布:java 心跳实现 编辑:程序博客网 时间:2024/06/07 01:19
逻辑:
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,这种资源文件,以便测试。
阅读全文
0 0
- 利用socket进行服务端与客户端传文件
- Socket客户端与服务端
- Socket套接字:客户端与服务端进行通信
- socket通信 客户端与服务端
- golang socket 服务端与客户端
- Android 手机间的文件传送(socket手机做服务端和客户端进行)
- socket编程--客户端发送文件至服务端
- 利用Tcp和socket实现的客户端与服务端的简单通信
- Java中利用socket实现简单的服务端与客户端的通信(入门级)
- Java中利用socket实现简单的服务端与客户端的通信(基础级)
- 利用网络进行文件的上传,通过客户端上传到服务端
- php服务端与android客户端socket通信
- php服务端与android客户端socket通信
- php服务端与android客户端socket通信
- socket实现服务端与客户端的通讯
- Socket服务端与客户端一些小问题
- socket 编程之TCP服务端与客户端
- Socket客户端与服务端通讯实例
- Go语言入门教程(二)运行单个文件
- c++全套视频分享
- [题解]bzoj1691 Usaco2007Dec 挑剔的美食家
- Maven Project和 Maven Module的区别
- 对象,类,属性,成员变量,局部变量
- 利用socket进行服务端与客户端传文件
- xib写好约束后 代码动态修改约束
- 在MyEclipse中导入做好的java项目出现错误The project cannot be built until build path errors are resolved
- Python多线程错误
- GitHub万星项目:黑客成长技术清单
- c语言各种类型常量表示方式
- 构造方法
- java构建zk集群客户端
- 在CentOS安装PHP5.6 YUM版