(原创)
这两天打算用UDP传输文件的 test,下午大概测试了一下,可以实现两台计算机之间的UDP传输.但还有些小问题,估计明天再调试一下,UDP这块就告一段落了.
主要思想步骤如下:
1.假如现在有两个类,一个叫FileSender, 另一个类叫FileAccepter(接收文件),
当FileSender要传送给FileAccepter文件时,他首先发一个信息包(MyPakcet),里面包含着文件信息如文件大小,FileAccepter收到就弹出对话框访问用户是否接受文件,当FileAccepter点击接收文件之后,FileAccepter端就开始发出一个(MyPakcet)包,表示响应并且接受文件的接收.这时假定FileSender接收到响应,然后两者就开始建立连接.
FileSender专门启一个线程发数据包,而FileAccepter专门启一个线程在接收数据包.
它们之间传送的数据包用MyPacket;
下面看看个人定义的MyPakcet数据包:
MyPacket{
private int type;//消息类型
private Datable datable;//消息内容,它是一个抽象类,任何消息类型都是它的子类,包括传输文件的数据包
}
传输文件的数据包定义如下:
FileData extends Datable implements Serializable{
public static final long SerializationUID = 20071010L;//
private byte[] data;//数据
//此类还有两个转换方法分别是将byte[]转换为MyPacket对象,和MyPacket转换为byte[]
// 大家可以自己去实现
public static MyPacket getMyPacket(byte[]){
}
public static byte[] getByteArray(MyPakcet m){
}
}
传输文件时,文件信息包如下:
FileInfoData extends Datable implements Serializable{
......
//文件信息
private String fileName;
private int count;//文件分成几块
private long length;//文件的大小
}
上面所写的这两个类FileInfoData和FileData都是Datable的子类,
当我们发送数据时都是以包MyPakcet封装在DatagramPacket里发送出去的,接收时同样又把收到的byte[]还原成MyPakcet对象.这样就可以实现相互之间的通信.
希望以上这些能对那些初入UDP的学者能有点帮助.
分享到:
相关推荐
### 基于UDP传输协议的包丢失和失序处理 #### 引言 随着互联网技术的迅猛发展,对于音频和视频等连续媒体的实时传输需求变得越来越迫切。特别是基于互联网的视频会议系统的研发,已经吸引了众多研究机构和企业的极...
### 基于UDP传输协议的网络时延仿真研究 #### 概述 本文献针对在基于用户数据报协议(User Datagram Protocol, UDP)的网络环境中数据包传输时延问题展开深入研究。UDP作为一种无连接的传输层协议,提供了一种高效...
Java基于UDP传输协议的简单聊天室是一个典型的网络编程示例,它涵盖了多个核心知识点,包括Java的Socket编程、用户数据报协议(UDP)以及JSON数据格式的使用。在这个项目中,我们将深入理解这些概念并探讨如何将它们...
【标题】:基于UDP传输协议的类似QQ聊天程序 UDP(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,与TCP相比,它更轻量级,速度更快,适用于实时通信或对延迟敏感的应用场景,如在线游戏、视频通话...
基于UDP传输控制协议和GUI开发的聊天窗口程序,可以启动多次main程序,实现一个IP地址,多个监听口。有聊天窗口,方便使用
9. **基于UDP传输协议的网络时延仿真研究**:研究UDP传输时的网络延迟,为优化传输性能提供依据。 10. **基于UDP的图像传输控制参数的自适应算法**:介绍一种自适应算法,该算法能根据网络状况动态调整UDP传输的...
本话题聚焦于如何使用C++实现基于UDP的大文件传输,特别是超过10MB的文件。在进行大文件传输时,需要注意的问题和技巧将是我们探讨的重点。 首先,了解UDP的特点是必要的。与TCP(Transmission Control Protocol)...
从网上下完get和set程序之后是不能够直接用的,需要按照要求配置一下native协议,这样flightgear才能够通过udp收发数据,网上关于flightgear的资料特别少,我也是搞了好几天才弄明白协议怎么配置,都在文档里啦
支持点到点可靠文件传输(基于UDP协议); 存储在服务器端的数据需要进行强加密; 支持不少于两组用户同时在线交流和传输文件; 文件传输具有良好的性能,能够充分利用网路带宽; 人机交互友好,软件易用性强。
【标题】:“基于UDP的考试系统”是一个使用UDP(用户数据报协议)进行通信的考试应用,它利用JavaFX作为图形用户界面(GUI)来实现。这个系统的主要特点是服务端和客户端之间的通信依赖于无连接的UDP协议,这与TCP...
下面将详细探讨Android UDP传输的实现及其相关知识点。 首先,我们要了解在Android中如何创建UDP套接字。Android系统提供了`java.net.DatagramSocket`类来处理UDP通信。创建一个UDP套接字可以使用`DatagramSocket()...
本资源是基于 UDP 协议与 OpenCV 库实现网络视频传输的实现代码,使用 Python 语言实现,分为服务器端和客户端两个文件,启动前需要修改 host IP 地址为实际的 IP 地址,同时需注意先运行服务器端代码,再运行客户端...
为了解决这一问题,BUTP(基于UDP传输协议)应运而生。本篇文章将详细介绍BUTP的设计理念、系统架构以及其实现机制。 #### BUTP协议背景与需求 在中国,局域网的普及率远高于其他国家,这主要是由于IPv4地址资源的...
### 网络程序设计-基于UDP的文件传输 #### 概述 本文将详细介绍一个基于用户数据报协议(User Datagram Protocol, UDP)实现的文件传输程序的设计与实现原理。该程序由两个部分组成:客户端和服务端。客户端负责...
本项目是关于基于UDP实现的简单文件传输,尽管可能在传输的完整性和可靠性上有所欠缺,但作为学习和理解UDP协议的基础实践,具有一定的价值。 首先,我们需要了解UDP的基本原理。UDP不建立连接,而是直接将数据报文...
标题中的“基于UDP的数据单向传输源代码”指的是使用UDP(User Datagram Protocol)协议实现数据的单向流动,即从一个源头发送数据到一个目的地,但不期望接收任何响应的系统。UDP是一种无连接的传输层协议,它不...
【基于UDP的文件传输工程(C++)】是一个利用UDP(User Datagram Protocol)协议进行文件传输的项目。UDP是互联网协议栈中的一种无连接、不可靠的传输协议,相较于TCP,它具有更低的延迟和更高的传输效率,适用于对...
基于UDP的可靠传输通常涉及到以下几个关键知识点: 1. **序列号**:为每个发送的数据包分配一个唯一的序列号,接收方可以据此判断数据包的顺序以及是否丢失。 2. **确认机制**:接收方接收到数据包后,会返回一个...
在提供的源代码示例中,我们看到了一个基于UDP的文件传输系统,其中包含了发送方(client)和接收方(server)两个部分。为了实现验证和重发,代码定义了一个自定义的数据包结构`recvbuf`,它不仅包含了实际的数据...