UDP传输图片的尝试
来源:互联网 发布:翦伯赞中国史纲要知乎 编辑:程序博客网 时间:2024/05/12 23:30
UDP是不可靠的,发送的数据不一定会到达,且顺序不一定完整。
想要验证一下UDP传输文件的效果,最直观的是传输图片。
这里在客户端的DatagramSocket设置了个超时时间,当发送端发送完后客户端就会抛出超时异常,程序就退出了。
UDPFileReceiver:
package com.woxiaoe.study.java_net.udp;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.SocketException;public class UDPFileReceiver {private int port = 1220;private DatagramSocket socket;public UDPFileReceiver() throws SocketException{socket = new DatagramSocket(port);socket.setSoTimeout(4000);}public void reciveData() throws FileNotFoundException{File newfile = new File("641k.jpg");byte[] buf = new byte[8192];FileOutputStream fos = new FileOutputStream(newfile);while(true){DatagramPacket packet = new DatagramPacket(buf, 8192);try{socket.receive(packet);fos.write(packet.getData(), 0, packet.getLength());}catch(Exception e){try {System.out.println("传输结束");socket.close();fos.flush();fos.close();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}break;}}}public static void main(String[] args) throws FileNotFoundException, SocketException {new UDPFileReceiver().reciveData();}}
UDPFileServer:
package com.woxiaoe.study.java_net.udp;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;import java.net.SocketException;import java.net.UnknownHostException;public class UDPFileServer {private int port = 1220;private String filePath = "";private DatagramSocket socket;public UDPFileServer() throws SocketException {socket = new DatagramSocket();//System.out.println("服务器启动成功");}public void service() throws IOException{InputStream is = this.getClass().getResourceAsStream("641k.jpg");byte[] buffer = new byte[8192];int len = 0;while((len = is.read(buffer)) != -1){System.out.println(len);DatagramPacket packet = new DatagramPacket(buffer, len,InetAddress.getByName("localhost"),port);socket.send(packet);}socket.close();}public static void main(String[] args) throws SocketException, IOException {new UDPFileServer().service();}}
原图片 和 传输后的图片对比
- UDP传输图片的尝试
- Socket UDP远程传输图片
- udp的字符传输
- UDP的传输功能
- UDP的传输功能
- Qt5--UDP图片传输并显示
- Qt5--UDP图片传输并显示
- 可靠UDP传输的实现
- udp传输文件的服务器端
- udp传输文件的客户端
- 基于udp的传输通信
- 异步下载图片的尝试
- 优化图片的小尝试
- UDP传输
- UDP传输
- UDP传输
- indy的UDP传输的演示源码
- Android开发之局域网内udp传输图片
- c++简单的链表测试。
- 多线程面试题
- [IOS]Command /xcode4/Platforms/iPhoneSimulator.platform/Developer/usr/bin/llvm-gcc-4.2 failed with
- test
- webview.getSettings()
- UDP传输图片的尝试
- 多表关联更新,UPDATE FROM用法
- JAVA基础第四天学习日记_数组
- 解决web 应用非流方式下载各类文档 直接在IE中打开的问题
- Java Interview Preparation Tips-Part 1: Core Java Interview Questions
- VS2005调用MSRS2008问题
- 把专业医疗设备搬回家 ATLAS辅助康复系统演示(附视频)
- 要像管理咨询一样去做软件需求调研
- MinGW下简单编译FFmpeg