UDP发送数据报
作者:legend
QQ:158067568
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();
}
}
注:相关代码我会在之后随着程序的其他代码一同给出。
分享到:
相关推荐
本篇将详细讲解如何利用Qt实现UDP定时发送数据报并进行丢包检测。 首先,我们需要创建一个Qt项目,使用QUDP相关的类,如QUdpSocket和QTimer。QUdpSocket用于处理UDP的收发操作,而QTimer则可以设置定时器来定期发送...
UDP用户数据报协议 UDP用户数据报协议(User Datagram Protocol)是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是 IP 协议与上层协议的接口。UDP 协议适用端口分辨运行在同一台...
总结,通过STM32F107VC和LWIP协议栈实现UDP发送数据到PC机,主要涉及到嵌入式系统编程、TCP/IP协议理解以及硬件接口的正确配置。这个简单的程序可以作为一个基础模板,帮助开发者快速搭建嵌入式设备与PC之间的通信...
本篇文章将详细讲解如何使用MATLAB实现UDP广播数据报,以及涉及的相关知识点。 首先,我们要理解UDP的基本概念。UDP是一种不可靠的传输协议,它不保证数据包的顺序、可靠性和完整性,但因其轻量级的特性,具有较低...
UDP发送数据的基本流程相对简单,主要包括以下几个步骤: 1. **创建数据报文**:首先,应用程序将要发送的数据打包成一个UDP数据报。 2. **添加首部**:接着,在UDP数据报前面添加UDP首部,包括源端口号、目的端口...
3. **发送数据**:通过`sendto()`函数向指定的远程地址和端口发送数据报,这个函数需要提供完整的接收端信息。 4. **接收数据**:使用`recvfrom()`函数接收来自任何源的数据报,该函数会返回数据以及数据的来源地址...
在本文中,我们将深入探讨RTSP协议以及如何使用UDP(User Datagram Protocol,用户数据报协议)来发送数据,帮助你节省研究时间并快速实现相关功能。 RTSP协议的主要目标是提供对连续媒体的受控、可时序化的播放...
在IT行业中,网络通信是至关重要的部分,TCP(传输控制协议)和UDP(用户数据报协议)是两种广泛使用的传输层协议。本话题将详细探讨TCP/UDP数据模拟发送的相关知识,以及如何利用socket编程来实现这一功能。 TCP是...
Delphi是一款强大的Windows应用程序开发工具,它提供了丰富的组件库和编程接口,使得网络编程变得相对简单,尤其是UDP(用户数据报协议)通信。 UDP是一种无连接的、不可靠的传输层协议,它不保证数据的顺序或完整...
在本文中,我们将深入探讨如何在STM32F107VCT6微控制器上实现基于W5500硬件协议栈的UDP(用户数据报协议)收发数据。W5500是一款集成TCP/IP协议栈的以太网控制器,它提供了全硬件的网络接口,简化了嵌入式系统的网络...
"TCP和UDP协议发送数据大小" TCP和UDP协议发送数据包的大小是一个重要的讨论话题,特别是在UDP编程中。为了确保数据的正确发送和接收,需要了解TCP/IP协议栈的每一层的限制。 首先,从链路层开始,以太网(Ethernet...
在使用Qt进行UDP通信时,可能会遇到一种情况,即当发送方停止发送数据报文时,接收方仍能接收到空的报文。这通常是因为UDP的特性导致的。UDP(User Datagram Protocol)是一个无连接、不可靠的传输层协议,它不保证...
在这个实验中,我们将聚焦于如何利用STM32F107实现以太网通信,特别是通过UDP(用户数据报协议)客户端发送数据。UDP是一种无连接的传输层协议,它提供了快速、简单但不可靠的数据通信方式,适合实时应用或对数据...
1. **创建Socket**:使用`socket()`函数创建一个UDP套接字,指定`SOCK_DGRAM`类型,因为UDP是数据报协议。 2. **绑定地址和端口**:使用`bind()`函数将套接字与本地IP地址和端口号关联,这样可以接收来自其他主机的...
在本文中,我们将深入探讨如何在Visual C++ 6.0(简称VC6.0)环境下使用Socket API实现UDP(用户数据报协议)数据传输。Socket编程是网络编程的基础,而UDP是一种无连接、不可靠的传输协议,适用于对实时性要求较高...
在给定的“易语言UDP发送数据源码.zip”压缩包中,包含了一个易语言项目的源代码,这个项目主要用于演示如何使用易语言实现UDP(User Datagram Protocol)网络通信。UDP是一种无连接的、不可靠的传输层协议,常用于...
1. **无连接**:UDP不建立连接,每个数据报都是独立发送的,不需要预先建立连接过程,因此它可以快速地发送数据。 2. **不可靠**:UDP不保证数据的可靠传输,没有重传机制,如果数据报在网络中丢失、重复或顺序错乱...
易语言UDP数据报服务源码,UDP数据报服务,启动新线程,子程序2,Bind,Close,Sendto,Recvfrom,Socket_WSAStartup,Socket_WSACleanup,Socket_UDP,Socket_Bind,Socket_接收数据报,Socket_发送数据报,WSASetLastError,...