`
行者买刀
  • 浏览: 194154 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

基于UDP传输

udp 
阅读更多

 

(原创)

这两天打算用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传输协议的包丢失和失序处理 #### 引言 随着互联网技术的迅猛发展,对于音频和视频等连续媒体的实时传输需求变得越来越迫切。特别是基于互联网的视频会议系统的研发,已经吸引了众多研究机构和企业的极...

    基于UDP传输协议的网络时延仿真研究

    ### 基于UDP传输协议的网络时延仿真研究 #### 概述 本文献针对在基于用户数据报协议(User Datagram Protocol, UDP)的网络环境中数据包传输时延问题展开深入研究。UDP作为一种无连接的传输层协议,提供了一种高效...

    Java基于UDP传输协议的简单聊天室

    Java基于UDP传输协议的简单聊天室是一个典型的网络编程示例,它涵盖了多个核心知识点,包括Java的Socket编程、用户数据报协议(UDP)以及JSON数据格式的使用。在这个项目中,我们将深入理解这些概念并探讨如何将它们...

    基于UDP传输协议的类似QQ聊天程序

    【标题】:基于UDP传输协议的类似QQ聊天程序 UDP(User Datagram Protocol)是一种无连接的、不可靠的传输层协议,与TCP相比,它更轻量级,速度更快,适用于实时通信或对延迟敏感的应用场景,如在线游戏、视频通话...

    基于UDP传输控制协议和GUI开发的聊天窗口程序

    基于UDP传输控制协议和GUI开发的聊天窗口程序,可以启动多次main程序,实现一个IP地址,多个监听口。有聊天窗口,方便使用

    UDP图像传输中国知网的资料

    9. **基于UDP传输协议的网络时延仿真研究**:研究UDP传输时的网络延迟,为优化传输性能提供依据。 10. **基于UDP的图像传输控制参数的自适应算法**:介绍一种自适应算法,该算法能根据网络状况动态调整UDP传输的...

    基于c++的udp传输,传送超过10M的文件

    本话题聚焦于如何使用C++实现基于UDP的大文件传输,特别是超过10MB的文件。在进行大文件传输时,需要注意的问题和技巧将是我们探讨的重点。 首先,了解UDP的特点是必要的。与TCP(Transmission Control Protocol)...

    flightgear基于udp传输native_fdm协议的配置说明

    从网上下完get和set程序之后是不能够直接用的,需要按照要求配置一下native协议,这样flightgear才能够通过udp收发数据,网上关于flightgear的资料特别少,我也是搞了好几天才弄明白协议怎么配置,都在文档里啦

    Socket编程-即时通讯工具-基于TCP和UDP协议-包括服务器端和客户端

    支持点到点可靠文件传输(基于UDP协议); 存储在服务器端的数据需要进行强加密; 支持不少于两组用户同时在线交流和传输文件; 文件传输具有良好的性能,能够充分利用网路带宽; 人机交互友好,软件易用性强。

    基于UDP的考试系统

    【标题】:“基于UDP的考试系统”是一个使用UDP(用户数据报协议)进行通信的考试应用,它利用JavaFX作为图形用户界面(GUI)来实现。这个系统的主要特点是服务端和客户端之间的通信依赖于无连接的UDP协议,这与TCP...

    android udp传输实例

    下面将详细探讨Android UDP传输的实现及其相关知识点。 首先,我们要了解在Android中如何创建UDP套接字。Android系统提供了`java.net.DatagramSocket`类来处理UDP通信。创建一个UDP套接字可以使用`DatagramSocket()...

    基于 UDP 协议与 OpenCV 库实现网络视频传输

    本资源是基于 UDP 协议与 OpenCV 库实现网络视频传输的实现代码,使用 Python 语言实现,分为服务器端和客户端两个文件,启动前需要修改 host IP 地址为实际的 IP 地址,同时需注意先运行服务器端代码,再运行客户端...

    基于UDP的,BUTP协议详解

    为了解决这一问题,BUTP(基于UDP传输协议)应运而生。本篇文章将详细介绍BUTP的设计理念、系统架构以及其实现机制。 #### BUTP协议背景与需求 在中国,局域网的普及率远高于其他国家,这主要是由于IPv4地址资源的...

    网络程序设计-基于UDP的文件传输

    ### 网络程序设计-基于UDP的文件传输 #### 概述 本文将详细介绍一个基于用户数据报协议(User Datagram Protocol, UDP)实现的文件传输程序的设计与实现原理。该程序由两个部分组成:客户端和服务端。客户端负责...

    基于udp的文件传输

    本项目是关于基于UDP实现的简单文件传输,尽管可能在传输的完整性和可靠性上有所欠缺,但作为学习和理解UDP协议的基础实践,具有一定的价值。 首先,我们需要了解UDP的基本原理。UDP不建立连接,而是直接将数据报文...

    基于UDP的数据单向传输源代码

    标题中的“基于UDP的数据单向传输源代码”指的是使用UDP(User Datagram Protocol)协议实现数据的单向流动,即从一个源头发送数据到一个目的地,但不期望接收任何响应的系统。UDP是一种无连接的传输层协议,它不...

    基于UDP的文件传输工程(C++)

    【基于UDP的文件传输工程(C++)】是一个利用UDP(User Datagram Protocol)协议进行文件传输的项目。UDP是互联网协议栈中的一种无连接、不可靠的传输协议,相较于TCP,它具有更低的延迟和更高的传输效率,适用于对...

    基于UDP的可靠传输

    基于UDP的可靠传输通常涉及到以下几个关键知识点: 1. **序列号**:为每个发送的数据包分配一个唯一的序列号,接收方可以据此判断数据包的顺序以及是否丢失。 2. **确认机制**:接收方接收到数据包后,会返回一个...

    udp文件传输-有源码

    在提供的源代码示例中,我们看到了一个基于UDP的文件传输系统,其中包含了发送方(client)和接收方(server)两个部分。为了实现验证和重发,代码定义了一个自定义的数据包结构`recvbuf`,它不仅包含了实际的数据...

Global site tag (gtag.js) - Google Analytics