美文网首页
UDP通信工具

UDP通信工具

作者: 小白狮子 | 来源:发表于2019-02-18 11:58 被阅读0次

UDP通信工具

package com.dobot.androidtools.Tools;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class UdpMessageTool {
    private byte[] bytes = new byte[2048];

    // DatagramSocket代表UDP协议的Socket,作用就是接收和发送数据报
    private DatagramSocket mDatagramSocket = null;
    public static UdpMessageTool instance;

    /**
     * 创建UdpMessageTool对象
     *
     * @throws Exception
     */

    public UdpMessageTool() throws Exception {
        // 初始化DatagramSocket,也可以传入指定端口号
        mDatagramSocket = new DatagramSocket();
    }


    /**
     * 设置超时时间
     */
    public final void setTimeOut(final int timeout) throws Exception {
        mDatagramSocket.setSoTimeout(timeout);
    }

    /**
     * 获取DatagramSocket对象
     */
    public final DatagramSocket getDatagramSocket() {
        return mDatagramSocket;
    }

    /**
     * 指定的服务端发送数据信息. 参数介绍: host 服务器主机地址 port 服务端端口 bytes 发送的数据信息
     */
    public final synchronized void send(final String host, final int port, final byte[] bytes) throws IOException {
        DatagramPacket dp = new DatagramPacket(bytes, bytes.length, InetAddress.getByName(host), port);
        mDatagramSocket.send(dp);
    }

    /**
     * 接收从指定的服务端发回的数据. hostName 服务端主机 hostPort 服务端端口 return 服务端发回的数据.
     *
     * @param hostName
     * @param hostPort
     * @return
     */
    public final synchronized String receive(final String hostName,
                                             final int hostPort) {
        DatagramPacket dp = new DatagramPacket(bytes, bytes.length);
        try {
            mDatagramSocket.receive(dp);
        } catch (Exception e) {
            e.printStackTrace();
            return "";
        }
        String result = new String(dp.getData(), 0, dp.getLength());
        return result;
    }


    /**
     * 关闭udp连接
     */
    public final void close() {
        if (mDatagramSocket != null) {
            try {
                mDatagramSocket.close();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            mDatagramSocket = null;
        }
    }
}

相关文章

  • UDP通信工具

    UDP通信工具

  • GO语言初级学习之代码案例12 (UDP通信)

    @(go语言 黑马)[GO语言] UDP通信 题目:编写UDP通信的并发服务器和客户端 知识点:UDP通信 逻辑思...

  • Linux C应用编程-6-网络通信

    1.TCP通信 1)TCP进程服务器 2)TCP客户端 2.UDP通信 1)UDP服务器 2)UDP客户端

  • .Net关于UDP组播通信

    最近写了一个用于发送错误日志的工具。组播UDP通信 个人理解:相对于TCP,UDP的好处在于不会粘包。其他更详细比...

  • UDP通信

    UDP - 面向无连接, 不安全的传输层协议.API: 服务端代码 客户端代码:

  • TCP与UDP

    TCP和UDP的区别 TCP是面向连接的通信服务UDP是面向无连接的通信服务 TCP提供可靠的数据传输UDP是不可...

  • 网络编程-TCP

    1.tcp的相关介绍 udp通信模型: udp通信模型中,在通信开始之前,不需要建立相关的链接,只需要发送数据即可...

  • 小程序UDP通信

    前言 UDP通信分为单播 广播 组播,基础库2.7.0之后,小程序开始支持UDP通信,目前小程序只支持单播。 小程...

  • QT udp通信--Apple的学习笔记

    一,前言 之前做的都是QT的TCP通信,从来没做过QT的udp通信,所以我从自己的小小代码库中找不到udp通信的最...

  • Linux下Socket编程(六)——udp

    简介 udp协议 udp通信流程 示例 udp协议 中文叫用户数据报协议,属于传输层。UDP是面向非连接的协议,它...

网友评论

      本文标题:UDP通信工具

      本文链接:https://www.haomeiwen.com/subject/hacaeqtx.html