NIO 기반 UDP 송수신기
입력하다:
【】는 옵션 기능을 나타내며 사용할 수 없습니다.
산출:
프로젝트 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
}
});
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 ();
public class UDPResult {
/**
* 对方ip地址
*/
private String ip ;
/**
* 对方返回的结果
*/
private byte [] resultData ;
}
v2.0.2 (2017.10.27)
v2.0.1
참고 사항: v1.X 버전을 사용하지 않는 것이 좋습니다. 최신 버전을 사용하는 것이 좋습니다.
v1.4.0
[New] IP 지정 시 기본적으로 패키지는 한 번만 전송됩니다. (여러 번 전송해야 하는 경우 예약 방법을 통해 지정할 수 있습니다.)
[버그] 포트는 발신자만 지정할 수 있습니다. 버그이므로 이 버전을 사용하지 마세요.
v1.3.9
[Fix] 예약된 작업을 호출할 때 갑자기 중지하면 다음에 작업을 다시 시작할 때 현재 작업이 즉시 중지됩니다.
[버그] 포트는 발신자만 지정할 수 있습니다. 버그이므로 이 버전을 사용하지 마세요.
v1.3.8
【수정】특별한 상황에서 충돌 수정
[버그] 포트는 발신자만 지정할 수 있습니다. 버그이므로 이 버전을 사용하지 마세요.
v1.3.7
[Fix] 작업이 끝나면 관련 인터페이스가 자동으로 닫힙니다.
[버그] 포트는 발신자만 지정할 수 있습니다. 버그이므로 이 버전을 사용하지 마세요.
v1.3.6
[수정] onCompleted 메소드를 여러 번 호출
[버그] 포트는 발신자만 지정할 수 있습니다. 버그이므로 이 버전을 사용하지 마세요.
v1.3.5
[Fix] 작업(UDPSender.getInstance().stop())을 닫을 때 onCompleted 메서드가 사용되지 않음
[New] 대상 IP 방식 설정(기본 브로드캐스트 형식)
[버그] 포트는 발신자만 지정할 수 있습니다. 버그이므로 이 버전을 사용하지 마세요.
더 많은 역사적 버전은 아직 기록되지 않았습니다.