网络编程Socket一之上传文件视频
网络编程Socket一之上传文件视频
通过网络编程,实现从客户端上传视频到服务器端
具体实现:
UploadClient类模拟上传视频端
package com.gxa.upload;import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;public class UploadClient {public static void main(String[] args) throws Exception {//1、创建Socket对象Socket socket = new Socket("127.0.0.1", 8080);//2、读取客户端电脑的视频FileInputStream in = new FileInputStream("F:\\国信安\\资料\\视频\\Video_2020-11-18_102710.wmv");//3、通过socket写出数据到服务器端OutputStream out = socket.getOutputStream();//4、写出数据到服务器端 流的模板代码byte[] buffer = new byte[1024];int len = 0;while ((len = in.read(buffer)) > 0) {out.write(buffer, 0, len);}//关闭socket输出流 确保数据传输完socket.shutdownOutput();//获取服务器端的反馈信息InputStream socketIn = socket.getInputStream();len = socketIn.read(buffer);System.out.println(new String(buffer, 0, len));//关闭资源in.close();out.close();}
}
UploadServer类模拟视频接收端并反馈信息
package com.gxa.upload;import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;public class UploadServer {public static void main(String[] args) throws Exception {//1、创建ServerSocket对象ServerSocket ss = new ServerSocket(8080);//2、获取客户端的socket对象Socket accept = ss.accept();//3、获取客户端的数据InputStream in = accept.getInputStream();//4、往服务器的磁盘上写出数据,即返回数据FileOutputStream out = new FileOutputStream("hello.wmv");//5、流的模板代码byte[] bytes = new byte[1024];int len = 0;while ((len = in.read(bytes)) != -1) {out.write(bytes, 0, len);}//6、反馈上传成功OutputStream socketOut = accept.getOutputStream();socketOut.write("视频上传成功".getBytes());//关闭资源accept.close();ss.close();}
}
结果:
最新文章
- RTB,未来移动互联网广告的发展方向
- 继承和接口
- Linux之jkd、tomcat、mysql安装
- 腾讯AI Lab 提出「完全依存森林」,大幅缓解关系抽取中的错误传递
- 高速PCB 设计中终端匹配电阻的放置
- 心血漏洞第二发?SSL v3再曝新漏洞发布预警
- [原创] 在MFC中大家都习惯用CStdioFile来处理文本文件,可是为什么CStdioFile不叫CTextFile?
- CC++文件操作之CStdioFile
- 《Linux操作系统
- 软件测试之测试分类
- SQL分组数据
- ecef与enu的转换
- 【EmguCV】EmguCV各种调用
- 自媒体运营的八条建议
- 仲至信息与Cornet Solutions签订日本经销合同
- c++ PTA
- PTA题选
- 如何有效的提问
- 客户开发篇
- Fedora 安装字体