Edson188
2014-12-30 16:39:36
原证精
java io+socket+多线程模拟video视频播放康美之恋特效源代码下载
启动socket :SocketListener
启动client : SocketVideo
运行结果:
package com.mir.video.socket; import java.io.BufferedOutputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.Socket; import com.mir.video.utils.Common; /** * ClassName:FileSocketWrite * * @author <font color="red">Edson</font> * @version * @since Ver 1.1 * @Date 2014年6月27日 下午6:12:38 * * @see */ public class FileSocketWrite extends Thread { private Socket socket; // 项目路径 private String userDir = System.getProperty("user.dir"); // 系统分隔符 private String se = System.getProperty("file.separator"); // 得到图片总数 private Integer count = Common.getFileCount(); private byte[] buf = new byte[1024 * 1024 * 10]; FileInputStream in = null; InputStream sin = null; DataOutputStream out = null; File file = null; /** * Creates a new instance of FileSocketWrite.<br> * * @param socket */ public FileSocketWrite(Socket socket) { this.socket = socket; } @Override public void run() { try { // 通过socket得到流 sin = socket.getInputStream(); out = new DataOutputStream(new BufferedOutputStream( socket.getOutputStream())); String path = userDir + se + "image" + se + "康美之恋 0001.jpg"; for (int i = 1; i < count; i++) { // 阻塞,客户端发送消息才继续执行(项目中其实可以携带一些参数) socket.getInputStream().read(); if (i < 10) path = userDir + se + "image" + se + "康美之恋 000" + i + ".jpg"; else if (i < 100) path = userDir + se + "image" + se + "康美之恋 00" + i + ".jpg"; else if (i < 1000) path = userDir + se + "image" + se + "康美之恋 0" + i + ".jpg"; else path = userDir + se + "image" + se + "康美之恋 " + i + ".jpg"; file = new File(path); in = new FileInputStream(file); // 写出文件长度 out.writeLong(file.length()); out.flush(); // 写出文件名 // out.writeUTF(file.getName()); // out.flush(); int len = 0; //写出文件 while ((len = in.read(buf)) != -1) { out.write(buf, 0, len); } out.flush(); } //完毕之后关闭流<输入流其实可以只用一个的,我只是嫌麻烦> in.close(); sin.close(); out.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } }
逻辑很简单,启动一个socket,socket调用io流,io读取图片有个字节长度,io写图片流入到我们client上有个长度,当图片流的长度等于IO读取图片流长度相等时,我就让你写入到client上,完毕。
这个东东好像是今年6月无聊的时候写的...也许有bug,有兴趣的自己调优。
图片有2248张才把这个传说中的康美之恋广告跑完,5分钟多种呢。我就不上传了,70多M。
有时间放到百度盘上面,逻辑都写的很清楚了,图片自己随意,
牛牛赶快通过,无私奉献叫程序员泡妞,年底了啊,把自己和女友拍的照片放这个程序打包发给自己喜欢的妹子,
有可能一感动就答应你了,我只能帮到你们这里了。没什么难读,谁叫我们买不起单反,玩不起狗,这等泡妞神器都不想去买,因为房子和车子才是重头哦。
猜你喜欢
请下载代码后再发表评论
文件名:Video.zip,文件大小:13.967K
下载
- /
- /Video
- /Video/.classpath
- /Video/.project
- /Video/.settings
- /Video/.settings/org.eclipse.core.resources.prefs
- /Video/.settings/org.eclipse.jdt.core.prefs
- /Video/bin
- /Video/bin/com
- /Video/bin/com/mir
- /Video/bin/com/mir/Global.class
- /Video/bin/com/mir/video
- /Video/bin/com/mir/video/socket
- /Video/bin/com/mir/video/socket/FileSocketWrite.class
- /Video/bin/com/mir/video/socket/SocketListener.class
- /Video/bin/com/mir/video/socket/SocketVideo.class
- /Video/bin/com/mir/video/socket
- /Video/bin/com/mir
- /Video/bin/com
- /Video/src
- /Video/src/com
- /Video/src/com/mir
/Video/src/com/mir/Global.java
- /Video/src/com/mir/video
- /Video/src/com/mir/video/socket
- /Video/src/com/mir/video/utils
- /Video/src/com/mir
- /Video/src/com
- /Video
相关代码
最近下载
myj2006 LV11
2019年8月30日
18089237297 LV3
2019年4月26日
pzg8616235 LV8
2018年9月10日
lhyi23 LV1
2018年6月11日
华丽的孤单331 LV9
2018年6月4日
zs3480 LV11
2018年2月3日
15943876586 LV17
2017年2月7日
都市书 LV4
2016年11月15日
gjynewer LV15
2016年9月2日
gutong LV10
2015年10月3日
最近浏览
s4dmcc LV1
9月17日
dapeng0011 LV15
2月25日
飞翔的面包片 LV12
2023年12月19日
pangzhihui LV14
2023年12月15日
lironggang LV38
2023年6月13日
aq384419
2023年4月15日
暂无贡献等级
超维智能编程 LV6
2023年2月26日
nywgzhc LV10
2022年11月20日
mc0624
2022年10月13日
暂无贡献等级
爱情戴罪的羔羊 LV7
2022年9月9日