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();
         }
        
}
 

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值