All Projects → huangdali → UDPSender

huangdali / UDPSender

Licence: other
UDPSender 一个基于NIO的UDP发送-接收器

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to UDPSender

sthread
sthread(simple-thread):支持高并发的协程网络库
Stars: ✭ 27 (-20.59%)
Mutual labels:  udp, udp-server
twjitm-core
采用Netty信息加载实现长连接实时通讯系统,客户端可以值任何场景,支持实时http通讯、webSocket通讯、tcp协议通讯、和udp协议通讯、广播协议等 通过http协议,rpc协议。 采用自定义网络数据包结构, 实现自定义网络栈。
Stars: ✭ 98 (+188.24%)
Mutual labels:  udp, udp-server
network
exomia/network is a wrapper library around System.Socket for easy and fast TCP/UDP client & server communication.
Stars: ✭ 18 (-47.06%)
Mutual labels:  udp, udp-server
Mobileimsdk
一个原创移动端IM通信层框架,轻量级、高度提炼,历经8年、久经考验。可能是市面上唯一同时支持UDP+TCP+WebSocket三种协议的同类开源框架,支持iOS、Android、Java、H5,服务端基于Netty。
Stars: ✭ 3,864 (+11264.71%)
Mutual labels:  udp, nio
Socket-Programming-With-C
✉️ Learn Network Protocol and Network Programming
Stars: ✭ 147 (+332.35%)
Mutual labels:  udp, udp-server
T Io
解决其它网络框架没有解决的用户痛点,让天下没有难开发的网络程序
Stars: ✭ 1,331 (+3814.71%)
Mutual labels:  udp, nio
Magician
Magician is a small HTTP service package based on Netty that makes it very easy to start an http service, and also supports WebSocket, using annotated configuration Handler, If you want to develop an http service with netty but find it cumbersome, then Magician may help you.
Stars: ✭ 97 (+185.29%)
Mutual labels:  udp, nio
aioudp
Asyncio UDP server
Stars: ✭ 21 (-38.24%)
Mutual labels:  udp, udp-server
DDoS-Script
A script written in perl for ddos ​​with automatic detection of open and vulnerable port that gives up to 1.5 gb packages / s
Stars: ✭ 30 (-11.76%)
Mutual labels:  udp, udp-server
SACK
System Abstraction Component Kit
Stars: ✭ 18 (-47.06%)
Mutual labels:  udp
canCross
一键部署 SS for Docker
Stars: ✭ 14 (-58.82%)
Mutual labels:  udp
net-protocol
golang模拟内核协议栈 实现链路层、网络层、传输层、应用层 用户态协议栈 ,基于虚拟网卡TUN/TAP
Stars: ✭ 129 (+279.41%)
Mutual labels:  udp
kcp erlang
A Reliable-UDP Library for erlang
Stars: ✭ 24 (-29.41%)
Mutual labels:  udp
JavaCertification
This is a full resource guide for my attempt to get Java 11 Certified
Stars: ✭ 67 (+97.06%)
Mutual labels:  nio
netty-in-action-cn
Netty In Action 中文版
Stars: ✭ 1,389 (+3985.29%)
Mutual labels:  nio
usbip-service-discovery
USB/IP Service Discovery - Provide GUI and some enhancement for USB/IP userspace
Stars: ✭ 25 (-26.47%)
Mutual labels:  udp
reverse-tunnel
Reverse tunnel TCP and UDP
Stars: ✭ 100 (+194.12%)
Mutual labels:  udp
Rmessage
Reactive Programming Multi-protocol push service
Stars: ✭ 23 (-32.35%)
Mutual labels:  udp
rtmfp-cpp
Secure Real-Time Media Flow Protocol (RTMFP) Library in C++
Stars: ✭ 16 (-52.94%)
Mutual labels:  udp
CSharpServer
Ultra fast and low latency asynchronous socket server & client C# library with support TCP, SSL, UDP protocols and 10K connections problem solution
Stars: ✭ 101 (+197.06%)
Mutual labels:  udp-server

UDPSender License Download

基于NIO的UDP发送-接收器

输入:

  • 指令byte数组
  • 【目标端口号】
  • 【默认广播发送,可指定ip发送】
  • 【默认只发一次,可指定发送次数及延迟发送】

【】表示可选功能,可不使用

输出:

  • UDPReuslt结果对象(包含对方IP地址、结果数组[byte类型的数组])

导入

在你项目app/build.gradle中加入如下的代码

    dependencies {
       ...
       compile 'com.jwkj:udpsender:v2.0.2'
    }

使用方法

快速上手

 UDPSender.getInstance()
                .setInstructions(byteAraary)
                .setTargetPort(port)
                .start(new UDPResultCallback() {
                    @Override
                    public void onNext(UDPResult result) {
                        //do something
                    }
                });

完整demo

UDPSender.getInstance()
                .setInstructions(byteAraary)//设置发送的指令[可为空]
                .setReceiveTimeOut(70 * 1000)//设置接收超时时间[可不写,默认为60s]--超时70s就停止任务
                .setTargetPort(port)//设置发送的端口[必写]
                .setLocalReceivePort(port)//设置本机接收的端口[可不写,默认为目标端口]
                .setTargetIp("192.168.1.150")//设置目标ip地址,[可不写,默认广播]
                .schedule(2, 3000)//执行2次,间隔三秒执行(上一次结束到下一次开始的时间)
                .start(new UDPResultCallback() {

                    @Override
                    public void onStart() {
                        //请求开始的时候回调
                    }

                    @Override
                    public void onNext(UDPResult result) {
                        //每收到一个结果的时候就回调
                    }

                    @Override
                    public void onCompleted() {
                        //请求结束的时候回调
                    }

                    @Override
                    public void onError(Throwable throwable) {
                        //当发生错误的时候回调
                    }
                });

只接收数据

 UDPSender.getInstance()
                .setLocalReceivePort(9988)//接收端口
                .start(new UDPResultCallback() {
                    @Override
                    public void onStart() {
                        ELog.hdl("开始了");
                    }

                    @Override
                    public void onNext(UDPResult result) {
                        ELog.hdl("收到结果" + result);
                    }

                    @Override
                    public void onError(Throwable throwable) {
                        ELog.hdl("出错" + throwable);
                    }

                    @Override
                    public void onCompleted() {
                        ELog.hdl("完成");
                    }
                });

关闭任务

UDPSender.getInstance().stop();

UDPReslt

public class UDPResult {
    /**
     * 对方ip地址
     */
    private String ip;
    /**
     * 对方返回的结果
     */
    private byte[] resultData;
}

历史更新记录

v2.X版

v2.0.2 ( 2017.10.27 )

  • 【修复】数据清理不及时,导致产生脏数据

v2.0.1

  • 【修复】只能接收对方端口为自身接收端口的bug
  • 【优化】底层库代码优化,已经相对成熟,可用于生产环境

温馨提示: 不建议使用v1.X版,建议使用最新版,使用方法不变

v1.X版

v1.4.0

  • 【新增】指定ip时默认只发送一次包(如需多次发送,可通过schedule方法指定)

  • 【bug】只能发送方指定端口,bug,不要使用此版本

v1.3.9

  • 【修复】调用定时任务时突然停止导致下一次重新开始任务时立刻停止当前的任务

  • 【bug】只能发送方指定端口,bug,不要使用此版本

v1.3.8

  • 【修复】修复特殊情况下的崩溃

  • 【bug】只能发送方指定端口,bug,不要使用此版本

v1.3.7

  • 【修复】任务结束时自动关闭相关接口

  • 【bug】只能发送方指定端口,bug,不要使用此版本

v1.3.6

  • 【修复】多次调用onCompleted方法

  • 【bug】只能发送方指定端口,bug,不要使用此版本

v1.3.5

  • 【修复】关闭任务(UDPSender.getInstance().stop())不走onCompleted方法

  • 【新增】设置目标ip方法(默认广播形式发送)

  • 【bug】只能发送方指定端口,bug,不要使用此版本

更多历史版本暂未记录

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].