类 DataChannel
- java.lang.Object
-
- java.lang.Thread
-
- com.tencent.tcr.micro.cloudsdk.DataChannel
-
- 所有已实现的接口:
java.lang.Runnable
public class DataChannel extends java.lang.Thread
数据通道,负责收发数据。
当收到数据或出现异常时会通过DataChannel.Listener
回调给使用者。
使用者也可以通过send(byte[])
给对端发送数据,注意send动作是在调用者线程里执行,不能在主线程里调用。
1.创建和打开数据通道(开始接收数据):
DataChannel.Listener listener = new DataChannel.Listener() { public void onReceive(byte[] buffer, int len) { // 从监听的端口接收到数据 } public void onException(Exception e) { // 数据接收过程中出现异常 } }; dataChannel = new DataChannel(listener, DEST_PORT); dataChannel.open();
SocketAddress
)dataChannel.send("data to be sent.".getBytes(StandardCharsets.UTF_8));
-
-
嵌套类概要
嵌套类 修饰符和类型 类 说明 static interface
DataChannel.Listener
DataChannel
接收数据的监听器
-
构造器概要
构造器 构造器 说明 DataChannel(DataChannel.Listener listener, int localPort)
构造函数
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 void
close()
关闭数据通道(停止收发数据)void
open()
打开数据通道(开始接收数据)void
run()
boolean
send(byte[] data)
向上一个收到的数据的SocketAddress
)地址发送数据data
。-
从类继承的方法 java.lang.Thread
activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
-
-
-
-
构造器详细资料
-
DataChannel
public DataChannel(DataChannel.Listener listener, int localPort) throws java.net.SocketException
构造函数- 参数:
listener
- 接收数据的监听器,不能为nulllocalPort
- 数据通道监听的本地端口号- 抛出:
java.net.SocketException
- if the socket could not be opened, or the socket could not bind to the specified local port.java.lang.SecurityException
- if a security manager exists and itscheckListen
method doesn't allow the operation.
-
-
方法详细资料
-
send
public boolean send(byte[] data) throws java.io.IOException
向上一个收到的数据的SocketAddress
)地址发送数据data
。 如果没有收到过数据,则无法发送,会返回false。 注意send动作是在调用者线程里执行,不能在主线程中调用。- 参数:
data
- 需要发送给对端的数据,参数不能为null- 返回:
- false如果没有收到过对端数据,没有对端地址。true其他情况。
- 抛出:
java.io.IOException
- IO异常
-
open
public void open()
打开数据通道(开始接收数据)
-
run
public void run()
- 指定者:
run
在接口中java.lang.Runnable
- 覆盖:
run
在类中java.lang.Thread
-
close
public void close()
关闭数据通道(停止收发数据)
-
-