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数据包 并实现发送的数据包计数与反馈的数据包计数 进行对比 确认网络的稳定性以及是否有丢包现象
UDP使用地址“255.255.255.255”进行局域网广播,定时每10秒发送一次数据报,数据包内容为当前电脑的日期和时间
易语言UDP数据报服务源码,UDP数据报服务,启动新线程,子程序2,Bind,Close,Sendto,Recvfrom,Socket_WSAStartup,Socket_WSACleanup,Socket_UDP,Socket_Bind,Socket_接收数据报,Socket_发送数据报,WSASetLastError,...
udp文件传输发送端源代码,每次数据报的大小可调,不丢包,ip地址,端口号,文件名需要自己设置
UDP是面向非连接的,UDP传输的是数据报只负责传输信息,不保证信息一定收到,虽然安全性不如TCP(面向连接、用Socket进行通信),但是性能较好。 从简单到复杂,首先简单介绍一下怎么利用UDP实现客服端发送消息给...
一个简单的电子应用程序,用于创建 UDP 客户端和服务器以发送和接收数据报。 您可以在任何主机和端口上添加 N 个 UDP 客户端,在任何主机和端口上添加 N 个 UDP 服务器。 您还可以生成随机数据并以固定时间间隔从...
UDP协议是一种无连接的协议,不提供数据报的分组、组装,不对数据包的传输进行确认,当报文发送出去后,发送端不关心报文是否完整的到达对端。这个听起来像是缺点的特点,却是UDP协议最大的优点。这种报文处理方式...
UDP是轻量的、不可靠的、面向数据报、无连接的协议,它可以用于对可靠性要求不高的场合,和TCP通信不同,两个程序之间进行UDP通信无需预先建立持久的socket连接,UDP每次发送数据报都需要指定目标地址和端口。...
1)、UDP 是无连接的,即发送数据之前不需要建立连接,发送数据之后也没有连接可释放,因此减小了开销和发送数据之前的时延。 2)、UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。
udp通信设计UDP协议,即拥护数据报协议(Use Datagram Protocol).是一个简单的面向数据报的传输层协议.他不提供可靠性,即只把应用程序传给IP层的数据发送出去,但是并不能保证他们能到达目的.Send to( )适用于已连接的...
UDP单播,发送与接收(代码)详细介绍。单播流程:主机A向主机B发送UDP数据报,发送的目的IP为192.168.1.151,端口为 80,此数据经过UDP层、IP层,到达数据链路层,数据在整个以太网上传播。
//调用UdpClient对象的Send方法将Udp数据报发送到远程主机 udpclient.Send(sendBytes, sendBytes.Length); //实例化IPEndPoint对象,用来显示响应主机的标识 IPEndPoint ipendpoint = new IPEndPoint(IPAddress....
信息简介:UDP协议,即拥护数据报协议(Use Datagram Protocol).是一个简单的面向数据报的传输层协议.他不提供可靠性,即只把应用程序传给IP层的数据发送出去,但是并不能保证他们能到达目的.广播和多播是基于UDP协议的两...
U D P是一个简单的面向数据报的运输层协议:进程的每个输出...数据报,并组装成一份待发送的I P数据报。 这与面向流字符的协议不同,如T C P,应用 程序产生的全体数据与真正发送的单个I P数 据报可能没有什么联系。
UDP数据报传输的关键部分是处理packetRAM[]中的内容,packetRAM用来存储网络中收到的数据,以及发送到网络中的数据,因为程序是顺序执行的,所以收到的数据和发送的数据没有重叠的情况。在packetRAM[]中的数据是...
UDP(User Datagram Protocol即...下面我们将编写两个程序,一个用来发送数据报,可以叫做客户端;另一个用来接收数据报,可以叫做服务器端,它们均应用UDP协议。这样也就构成了所谓的C/S(客户端/服务器)编程模型。
#从给定的端口,从任何发送者,接收UDP数据报 s.bind((,port)) print 'waiting on port:',port while True: data,addr = s.recvfrom(1024) #接收一个数据报(最大到1024字节) print 'reciveed:',
它不像TCP那样提供复杂的连接建立、数据确认和重传机制,而是直接发送数据报,无需等待对方的响应或确认。这种设计理念使得UDP具有较低的开销和较高的传输效率。 工作方式: UDP是一种无连接的协议,它在发送数据...