public class TCPUtils
extends java.lang.Object
构造器和说明 |
---|
TCPUtils() |
限定符和类型 | 方法和说明 |
---|---|
static java.lang.String |
getSocketAdressInfo(java.net.SocketAddress s) |
static boolean |
send(io.netty.channel.Channel skt,
byte[] d,
int dataLen)
发送一条tcp消息。
|
static boolean |
send(io.netty.channel.Channel skt,
byte[] d,
int dataLen,
MBObserver resultObserver)
发送一条tcp消息。
|
public static boolean send(io.netty.channel.Channel skt, byte[] d, int dataLen)
关于本方法的更多说明,请参见方法:send(Channel, byte[], int, MBObserver)
的详细说明。
skt
- netty中的Channel对象,相当于传统BIO中的socket对象d
- 要发送的数据内容dataLen
- 要发送的数据内容byte长度send(Channel, byte[], int, MBObserver)
方法中的 #resultObserver
参数设置观察者来实现结果通知,因为netty的数据发送是异步实现的)send(Channel, byte[], int, MBObserver)
public static boolean send(io.netty.channel.Channel skt, byte[] d, int dataLen, MBObserver resultObserver)
对于MobileIMSDK的TCP底层来说,本数据是整个TCP帧的body部分,具体的TCP帧组织方式,由netty的编码、解码
handler去自动处理了,此处应用层不需要自已处理。有关MobileIMSDK中的TCP帧定义,请见
LocalSocketProvider.TCP_FRAME_FIXED_HEADER_LENGTH
本方法中已对可能发生的异常进行了处理,调用者只会知道有否成功而不会被异常打断。
*********************************************************************************************
特别说明:如何知道本方法的数据发送成功与否?
skt
- netty中的Channel对象,相当于传统BIO中的socket对象d
- 要发送的数据内容dataLen
- 要发送的数据内容byte长度resultObserver
- 数据发送结果回调。对于netty来说,通过此异步回调通知,可以真正知道数据发送是否成功public static java.lang.String getSocketAdressInfo(java.net.SocketAddress s)