`
158067568
  • 浏览: 329237 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

UDP发送数据报

阅读更多

UDP发送数据报

作者:legend

QQ158067568

ok,继续我的毕设之旅,之前简单介绍了UDP单播、广播与多播,但是不管采用单播还是广播,基本代码都不大致相同。而其发送UDP数据报的地方很多。所以需要写一个工具类,来帮助发送udp数据报。

分析

首先,该类是一个榜首类,在使用它是应该做到不需要任何人的引用,只需要知道你要发送的内容

、发送的目的地的ip地址及其端口号就可以实例化。

其次,该类不应该与调用程在一个线程同,不然会影响调用线程的响应情况。

实现

有了这两条知道思想,那么在设计该类是应该做到如下:

首先其构造方法中应该给出udp传送的目的地ip地址及其端口号,和待发送的内容。

其次,该类应该自己在一个线程中,即他需要继承thread类或者实现runnable接口。

编码

package cn.edu.heut.helper;
 
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
/**
 * 该类相当于一个帮手类,帮助发送udp数据包
 * @author LEGEND
 *
 */
public class UDPSendHelper extends Thread{
         /**
          * 发送者的套接字
          */
         private DatagramSocket sendSocket ;
         private DatagramPacket sendPacket ;
         /**
          * 待发送的内容
          */
         private String data ;
         /**
          * 待发送的目的地址
          */
         private InetAddress destIPAddress ;
         /**
          * 目的地端口号
          */
         private int destPort ;
         /**
          * 实例化发送udp助手类
          * @param data 发送的数据
          * @param destIPAddress 目的地ip地址
          * @param destPort 目的地端口号
          */
         public UDPSendHelper(String data, InetAddress destIPAddress,
                            int destPort) {
                   this.data = data;
                   this.destIPAddress = destIPAddress;
                   this.destPort = destPort;
                   sendPacket = new DatagramPacket(data.getBytes(),data.getBytes().length,destIPAddress,destPort);//初始化数据报
         }
        
         @Override
         public void run() {
                   try {
                            sendSocket = new DatagramSocket() ;
                            sendSocket.send(sendPacket);//发送
                   } catch (SocketException e) {
                            e.printStackTrace();
                   } catch (IOException e) {
                            e.printStackTrace();
                   }
                   sendSocket.close();
         }
        
}
 

注:相关代码我会在之后随着程序的其他代码一同给出。

 

1
0
分享到:
评论
6 楼 wangyezidong 2013-04-18  
zjdxsunyan 写道
版主你好,android能不能广播udp呀,就是目的地址是255.255.255.255,让多个电脑收到。我试了下模拟器,怎么不行呢。是不是android不支持255.255.255.255。同样的一类在java普通项目中能够发送成功。这是什么原因呢?

请问android向每个主机发送广播后,怎么接收每个主机的返回呢
5 楼 蓝月儿 2012-08-13  
请问发送和接受广播的通道需要是一个吗?就是创建的DatagramSocket对象需要是一个吗?还有就是传送和接收数据的数据结构需要是同一个吗?谢谢
4 楼 zjdxsunyan 2012-04-21  
版主你好,android能不能广播udp呀,就是目的地址是255.255.255.255,让多个电脑收到。我试了下模拟器,怎么不行呢。是不是android不支持255.255.255.255。同样的一类在java普通项目中能够发送成功。这是什么原因呢?
3 楼 renmin520 2012-02-20  
希望版主能给一个DEMO的代码
谢谢
2 楼 beitielis 2011-08-17  
我也在弄这个,如果能共享源码的话,也发给我一份吧,谢谢了!
我的邮箱是: beautyxiangxiang@gmail.com
1 楼 zhangdongqian 2011-07-14  
版主,我最近也在弄这个,能否共享一下源码呢?我的邮箱是:zdqcgy@163.com,谢谢了!

相关推荐

    Qt UDP定时发送数据报并实现计数

    本篇将详细讲解如何利用Qt实现UDP定时发送数据报并进行丢包检测。 首先,我们需要创建一个Qt项目,使用QUDP相关的类,如QUdpSocket和QTimer。QUdpSocket用于处理UDP的收发操作,而QTimer则可以设置定时器来定期发送...

    UDP用户数据报协议UDP用户数据报协议

    UDP用户数据报协议 UDP用户数据报协议(User Datagram Protocol)是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是 IP 协议与上层协议的接口。UDP 协议适用端口分辨运行在同一台...

    stm32f107vc lwip协议栈udp发送数据到pc机的简单程序

    总结,通过STM32F107VC和LWIP协议栈实现UDP发送数据到PC机,主要涉及到嵌入式系统编程、TCP/IP协议理解以及硬件接口的正确配置。这个简单的程序可以作为一个基础模板,帮助开发者快速搭建嵌入式设备与PC之间的通信...

    使用MATLAB实现UDP广播数据报

    本篇文章将详细讲解如何使用MATLAB实现UDP广播数据报,以及涉及的相关知识点。 首先,我们要理解UDP的基本概念。UDP是一种不可靠的传输协议,它不保证数据包的顺序、可靠性和完整性,但因其轻量级的特性,具有较低...

    UDP发送原理,详细描述

    UDP发送数据的基本流程相对简单,主要包括以下几个步骤: 1. **创建数据报文**:首先,应用程序将要发送的数据打包成一个UDP数据报。 2. **添加首部**:接着,在UDP数据报前面添加UDP首部,包括源端口号、目的端口...

    UDP传输例子 UDP源码 UDP UDP传输 UDP发送文件 UDP发送

    3. **发送数据**:通过`sendto()`函数向指定的远程地址和端口发送数据报,这个函数需要提供完整的接收端信息。 4. **接收数据**:使用`recvfrom()`函数接收来自任何源的数据报,该函数会返回数据以及数据的来源地址...

    RTSP支持UDP发送数据

    在本文中,我们将深入探讨RTSP协议以及如何使用UDP(User Datagram Protocol,用户数据报协议)来发送数据,帮助你节省研究时间并快速实现相关功能。 RTSP协议的主要目标是提供对连续媒体的受控、可时序化的播放...

    tcp/udp数据模拟发送

    在IT行业中,网络通信是至关重要的部分,TCP(传输控制协议)和UDP(用户数据报协议)是两种广泛使用的传输层协议。本话题将详细探讨TCP/UDP数据模拟发送的相关知识,以及如何利用socket编程来实现这一功能。 TCP是...

    Delphi UDPServer 发送接收16进制数据

    Delphi是一款强大的Windows应用程序开发工具,它提供了丰富的组件库和编程接口,使得网络编程变得相对简单,尤其是UDP(用户数据报协议)通信。 UDP是一种无连接的、不可靠的传输层协议,它不保证数据的顺序或完整...

    基于W5500硬件协议栈的UDP收发数据(stm32f107vct6)

    在本文中,我们将深入探讨如何在STM32F107VCT6微控制器上实现基于W5500硬件协议栈的UDP(用户数据报协议)收发数据。W5500是一款集成TCP/IP协议栈的以太网控制器,它提供了全硬件的网络接口,简化了嵌入式系统的网络...

    TCP和UDP协议发送数据大小

    "TCP和UDP协议发送数据大小" TCP和UDP协议发送数据包的大小是一个重要的讨论话题,特别是在UDP编程中。为了确保数据的正确发送和接收,需要了解TCP/IP协议栈的每一层的限制。 首先,从链路层开始,以太网(Ethernet...

    Qt用于UDP通信对方停止发送,接收方仍有空报文出现问题

    在使用Qt进行UDP通信时,可能会遇到一种情况,即当发送方停止发送数据报文时,接收方仍能接收到空的报文。这通常是因为UDP的特性导致的。UDP(User Datagram Protocol)是一个无连接、不可靠的传输层协议,它不保证...

    愤怒 STM32F107以太网 UDP 客户端发送数据实验

    在这个实验中,我们将聚焦于如何利用STM32F107实现以太网通信,特别是通过UDP(用户数据报协议)客户端发送数据。UDP是一种无连接的传输层协议,它提供了快速、简单但不可靠的数据通信方式,适合实时应用或对数据...

    UDP数据发送接收程序

    1. **创建Socket**:使用`socket()`函数创建一个UDP套接字,指定`SOCK_DGRAM`类型,因为UDP是数据报协议。 2. **绑定地址和端口**:使用`bind()`函数将套接字与本地IP地址和端口号关联,这样可以接收来自其他主机的...

    VC6.0下的socket编程 实现了UDP数据传输

    在本文中,我们将深入探讨如何在Visual C++ 6.0(简称VC6.0)环境下使用Socket API实现UDP(用户数据报协议)数据传输。Socket编程是网络编程的基础,而UDP是一种无连接、不可靠的传输协议,适用于对实时性要求较高...

    易语言UDP发送数据源码.zip易语言项目例子源码下载

    在给定的“易语言UDP发送数据源码.zip”压缩包中,包含了一个易语言项目的源代码,这个项目主要用于演示如何使用易语言实现UDP(User Datagram Protocol)网络通信。UDP是一种无连接的、不可靠的传输层协议,常用于...

    UDP协议发送接收数据

    1. **无连接**:UDP不建立连接,每个数据报都是独立发送的,不需要预先建立连接过程,因此它可以快速地发送数据。 2. **不可靠**:UDP不保证数据的可靠传输,没有重传机制,如果数据报在网络中丢失、重复或顺序错乱...

    易语言UDP数据报服务

    易语言UDP数据报服务源码,UDP数据报服务,启动新线程,子程序2,Bind,Close,Sendto,Recvfrom,Socket_WSAStartup,Socket_WSACleanup,Socket_UDP,Socket_Bind,Socket_接收数据报,Socket_发送数据报,WSASetLastError,...

Global site tag (gtag.js) - Google Analytics