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

全网实现UDP文件传输原理

    博客分类:
  • J2SE
udp 
阅读更多

 这两天忙里偷闲,写了一个全网实现UPD文件的传输.

首先文件发送必须有发送端(下面都叫它为Sender)和接收端(下面都叫它为Accepter),两都都各自启动一个DatagramSocket端口监听.它们之间的传输是基于DatagramPacket的,所以为了能够解释这个包,我们必须自定义一些包,以便于能够识别包.

下面这些包是我自己定义的:

主要有如下这些包:

FileInfoDataPakcet(文件信息包),FileDataPacket(文件数据包),ResponseFileInfoDataPakcet(响应文件信息包),

RequestFileDataPacket(请求文件包),TransStatusDataPacket(请求传输状态包),以及ResponseTransStatusDataPacket(响应请求传输状态包),下面分别来解释它们

 FileInfoDataPacket:  一个是当Sender发送文件给Accepter时,它要先发送一个关于文件信息的包,如文件大小,文件名,文件分成几块.

ResponseFileInfoDataPakcet(响应文件信息包):Accepter收到文件之后,就要做出响应,是拒绝或者接受,但无论是拒绝或者接受,都要发一条响应包给Sender,这个消息包就是(ResponseFileInfoDataPacket).Sender收到之后,如果是拒绝文件包,就删除任务,如果对方接受文件,就要开始等待对方过来的请求包RequestFileDataPacket(请求文件包),

RequestFileDataPacket(请求文件包):请求文件包是Accepter发出的,它表求要请要Sender发文件的第一个包,然后收到之后,就用RandomAccessFile写入文件.写这个文件的过程可能会发生两种情况,一种是用户中断了,另外是一种传输完成正的中止,这时还要发消息告诉Sender说,我已经中断了此任务,或者文件已经传输完成,这个消息包就是TransStatusDataPacket(请求传输状态包)

TransStatusDataPacket(请求传输状态包):它就是Accepter中断文件传输或者文件传输完成时发给Sender给示对方能够移除正在进行的任务.

ResponseTransStatusDataPacket(响应请求传输状态包):当Sender收到请求传输状态包后,还要发一个响应包给Accepter通知Accepeter把请求传输状态包删除.当然这些事情都是基于线程而做的.

小结:

   1.UDP传输文件会比较麻烦,它不像TCP那么稳定,在网络不稳定的情况下,用UDP传输文件才比较符合实际(当然也不排除特殊情况).UDP传输需要考虑丢包情况,以及如何处理在丢包时重发数据包.

   2.数据发送时,有的数据需要对方回复,在网络不稳定的情况下,我们就需要不断的给对方发数据包,直到有数据回复,这就要让线程去做,如果收到对方回复之后我们才停止发包.

 

分享到:
评论
1 楼 666666 2007-11-06  
能说一下具体的实现方法吗?

相关推荐

    一个基于UDP数据广播的局域网络会议程序开发文档

    - **应用场景**:适用于对可靠性有较高要求的场景,如网页浏览(HTTP)、文件传输(FTP)、电子邮件(SMTP)等。 2. **UDP(User Datagram Protocol,用户数据报协议)** - **特点**:无连接、不可靠传输。 - **工作...

    IUV PPT IP承载原理(上)

    这些服务是与终端用户相关的数,包括文件传输、电子邮件、远程登录、网络管理等。传输层提供了可靠的数据传输服务,包括TCP和UDP两种协议。网络层提供了路由选择和流量控制的功能,包括IP、ICMP、IGMP等协议。 本...

    全网段IP地址扫描软件

    在提供的文件列表中,"NetScan 1.04.exe"很可能就是这款全网段IP地址扫描软件的可执行文件。运行这个程序,用户可以启动扫描操作,获取网络状态报告,帮助排查网络问题、管理网络资源,同时也能辅助进行安全审计,...

    WINSOCK套接字编程实验报告.docx

    通过使用C或JAVA语言编写客户端和服务器程序,实现基于TCP或UDP的网络通信数据传输服务,并熟悉基于TCP或UDP的Socket编程原理。 一、实验目的 本实验的目的是使用C或JAVA语言编写客户端和服务器程序,实现基于TCP...

    计算机网络原理知识点.doc

    移动网络技术则包括蜂窝式数字分组数据通信、无线局域网(WLAN)、Ad hoc网络和无线应用协议(WAP),使得用户可以在移动设备上实现数据传输和信息交流。 计算机网络的系统组成包括本地网络、干线和交换局。例如,...

    计算机网络考试综合简答题.docx

    - 主要服务包括远程登录(Telnet)、文件传输(FTP)、电子邮件(E-Mail)、网络新闻(Usenet)等。 - FTP工作模式:主动模式和被动模式。主动模式中,客户端指定一个端口,服务器主动连接该端口;被动模式中,...

    谢希仁《计算机网络》复习提纲--【计算机网络】名词解释.doc

    资源子网负责提供共享的网络资源,如文件服务器、打印机等,而通信子网则专注于数据传输,包括路由器、交换机等设备,确保信息在各节点间的有效传输。 网络拓扑结构描述了网络中节点和通信线路的布局方式,常见的有...

    TCP-IP详解卷1

    HTTP用于网页浏览,FTP用于文件传输,SMTP用于电子邮件的发送,DNS则负责将域名转换为IP地址。 5. **TCP连接建立与释放**:TCP连接的建立是通过三次握手完成的,确保双方都能正确接收和发送数据。而四次挥手则用于...

    计算机网络课后习题与解答.pdf

    例如,电子邮件系统就是网络应用的实例,它利用网络实现了信息的即时传输。 4. 网络分类:按覆盖范围,局域网如校园网,城域网如城市间的电信网络,广域网如互联网。它们的区别在于覆盖范围、传输速度和管理方式。 ...

    网络系统集成复习.doc

    - **功能**: 为用户提供具体的应用服务,如文件传输、电子邮件和网络打印。 - **关键特性**: 提供应用程序与网络服务之间的接口。 #### 二、TCP/IP模型 TCP/IP模型是一种实际使用的网络协议模型,主要用于互联网...

    实验三、WINSOCK套接字编程实验报告.doc

    实验要求参与者使用C或JAVA语言编写客户端和服务端程序,实现基于TCP或UDP协议的数据传输服务。通过此次实验,学生不仅能深入理解TCP/UDP协议的工作机制,还能掌握如何在Windows环境下利用套接字(socket)进行网络...

    计算机网络名词解释博士整理1

    25. **UDP(用户数据报传输协议)**:提供无连接服务,不保证数据的可靠性。 26. **TCP(传输控制协议)**:提供可靠的面向连接服务,保证数据的完整性和顺序。 以上是部分核心概念的解析,计算机网络的涵盖面非常...

    网络游戏-基于软件定义网络的DDoS攻击跨层协同防御方法.zip

    具体来说,通过SDN控制器,可以实现对全网流量的全局视图和智能调度,快速识别并隔离异常流量。 跨层协同防御是指在网络的不同层次(如物理层、链路层、网络层、传输层等)之间进行协调,共同对抗DDoS攻击。这种...

    信息技术知识

    - **网络与通信**:实现数据在网络中的传输。 #### 九、计算机硬件系统 - **运算器**:执行算术和逻辑运算。 - **控制器**:指挥计算机各个部件协同工作。 - **存储器**:存储程序和数据。 - **输入输出设备**:与...

    网络安全设计方案(4).doc

    下面让我们看看这几个特征的距离内容 安全和网络功能的融合 网络架构的融合,主要包括网关和终端的融合 网关方面:ARP先天免疫原理—NAT表中添加源MAC地址滤窗防火墙—封包检测,IP分片检查 UDP洪水终端方面:驱动...

    FDN - FDN Distributed Network-开源

    FDN可能采用了NAT穿透技术,如UDP打洞或STUN/TURN服务器,来帮助位于NAT后的节点建立直接的通信路径,从而实现全网的互联互通。 4. **源代码开放**:作为开源软件,FDN的源代码可供社区查看、学习和改进。这不仅...

Global site tag (gtag.js) - Google Analytics