网络编程应用:基于TCP协议【实现文件上传】--练习
来源:互联网 发布:网络连接突然出现叹号 编辑:程序博客网 时间:2024/06/05 07:13
要求:
基于TCP协议实现一个向服务器端上传文件的功能
客户端代码:
package Homework2;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.OutputStream;import java.net.Socket;import java.net.UnknownHostException;public class Client { public static void main(String[] args){ System.out.println("客户端已启动"); //1.在本工程下创建一个文件夹,并创建文件,使用这个文件来进行文件传输功能 //当然你也可以在自己电脑上找一个文件直接上传 File file=new File("Example"); file.mkdirs(); File file2=new File("Example\\a.txt"); Socket socket=null; OutputStream os=null; FileInputStream fis=null; try { //2.创建Socket对象,并得到相应的输出流----以及创建文件输入流 socket=new Socket("127.0.0.1",7000); os=socket.getOutputStream(); fis=new FileInputStream(file2); byte[] bs=new byte[1024]; int count=0; //3.发送文件 while((count=fis.read(bs))!=-1){ os.write(bs, 0, count); os.flush(); } } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(os!=null){ try { os.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(fis!=null){ try { fis.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(socket!=null){ try { socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }}
服务器端代码
package Homework2;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;//2 实现上传文件public class Server { public static void main(String[] args){ System.out.println("服务器已启动"); Socket socket=null; InputStream is=null; FileOutputStream fos=null; ServerSocket serverSocket=null; try { //1.创建ServerSocket对象,获得Socket对象以及输入流 serverSocket=new ServerSocket(7000); socket=serverSocket.accept(); is=socket.getInputStream(); //2.接收过来的文件存放位置 fos=new FileOutputStream(new File("Example\\e.txt")); //3.接收文件 byte[] bs=new byte[1024]; int count=0; while((count=is.read(bs))!=-1){ fos.write(bs, 0, count); fos.flush(); } System.out.println("文件已接收:over!"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { if(is!=null){ try { is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(fos!=null){ try { fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(socket!=null){ try { socket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(serverSocket!=null){ try { serverSocket.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }}
运行结果:
1 0
- 网络编程应用:基于TCP协议【实现文件上传】--练习
- 网络编程应用:基于TCP协议【实现对象传输】--练习
- 网络编程应用:基于UDP协议【实现文件下载】--练习
- {网络编程}和{多线程}应用:基于TCP协议【实现多个客户端发送文件给一个服务器端】--练习
- 基于TCP协议的Socket编程,实现文件的上传
- 网络编程应用:基于UDP协议【实现聊天程序】--练习
- 网络编程应用:基于TCP协议【实现一个聊天程序】
- TCP协议应用--上传文件
- 26-网络编程-16-网络编程(TCP协议-练习-上传文本文件)
- 27-网络编程-17-网络编程(TCP协议-练习-上传图片客户端)
- 27-网络编程-18-网络编程(TCP协议-练习-上传图片服务端)
- Java网络编程一个基础案例分析,基于TCP协议的客户端上传文件给服务器端(单线程版)
- Java网络编程实践和总结 --- 基于TCP的Socket编程之实现文件上传和下载服务
- {网络编程}和{多线程}应用:基于UDP协议【实现多发送方发送数据到同一个接收者】--练习
- (101)Tcp网络编程练习:上传文件、上传图片、用户登录
- 基于TCP协议的网络编程
- 基于Tcp协议的网络编程
- 基于TCP协议的网络编程
- java对Redis的缓存进行操作入门级
- Nginx简介及使用Nginx实现负载均衡的原理【通俗易懂,言简意赅】
- Java登录QQ邮箱整理邮件的58的简历(二)
- Android ProgressBar 详解 改变 ProgressBar 颜色
- CSS简单的鼠标滑入图片效果
- 网络编程应用:基于TCP协议【实现文件上传】--练习
- 设计模式之外观模式
- 输出图案(六)---输出空心矩形
- linux共享内存的两种方式
- HDU1358 Period(KMP找循环前缀)
- Android ContentProvider 完全解析及DEMO(最具说服力)
- OpenGL ES简介
- Oracle中merge into的使用
- zephyr学习笔记---单向链表slist