Package org.aoju.bus.socket
Class TcpAioSession
java.lang.Object
org.aoju.bus.socket.AioSession
org.aoju.bus.socket.TcpAioSession
AIO传输层会话
AioSession为smart-socket最核心的类,封装
AsynchronousSocketChannel API接口,简化IO操作
其中开放给用户使用的接口为:
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Field Summary
Fields inherited from class org.aoju.bus.socket.AioSession
SESSION_STATUS_CLOSED, SESSION_STATUS_CLOSING, SESSION_STATUS_ENABLED, status -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidclose(boolean immediate) 是否立即关闭会话voiddoRead()voidflipRead(boolean eof) final InputStream获得数据输入流对象。final InputStreamgetInputStream(int length) 获取已知长度的InputStreamfinal InetSocketAddress获取当前会话的本地连接地址final InetSocketAddress获取当前会话的远程连接地址获取当前Session的唯一标识boolean当前会话是否已失效获取读缓冲区对象void触发通道的读回调操作void获取WriteBuffer用以数据输出void触发AIO的写操作,Methods inherited from class org.aoju.bus.socket.AioSession
close, getAttachment, setAttachment
-
Method Details
-
doRead
public void doRead() -
suspendRead
public void suspendRead() -
writeCompleted
public void writeCompleted()触发AIO的写操作,需要调用控制同步
-
writeBuffer
Description copied from class:AioSession获取WriteBuffer用以数据输出- Specified by:
writeBufferin classAioSession- Returns:
- 输入流
-
readBuffer
Description copied from class:AioSession获取读缓冲区对象- Specified by:
readBufferin classAioSession
-
awaitRead
public void awaitRead()- Specified by:
awaitReadin classAioSession
-
close
public void close(boolean immediate) 是否立即关闭会话- Specified by:
closein classAioSession- Parameters:
immediate- true:立即关闭,false:响应消息发送完后关闭
-
getSessionID
获取当前Session的唯一标识- Overrides:
getSessionIDin classAioSession- Returns:
- sessionId
-
isInvalid
public boolean isInvalid()当前会话是否已失效- Overrides:
isInvalidin classAioSession- Returns:
- 是否失效
-
flipRead
public void flipRead(boolean eof) -
signalRead
public void signalRead()触发通道的读回调操作- Specified by:
signalReadin classAioSession
-
getLocalAddress
Description copied from class:AioSession获取当前会话的本地连接地址- Specified by:
getLocalAddressin classAioSession- Returns:
- 本地地址
- Throws:
IOException- IO异常- See Also:
-
getRemoteAddress
Description copied from class:AioSession获取当前会话的远程连接地址- Specified by:
getRemoteAddressin classAioSession- Returns:
- 远程地址
- Throws:
IOException- IO异常- See Also:
-
getServerConfig
-
getInputStream
获得数据输入流对象。faster模式下调用该方法会触发UnsupportedOperationException异常 MessageProcessor采用异步处理消息的方式时,调用该方法可能会出现异常
- Overrides:
getInputStreamin classAioSession- Returns:
- 同步读操作的流对象
- Throws:
IOException- io异常
-
getInputStream
获取已知长度的InputStream- Overrides:
getInputStreamin classAioSession- Parameters:
length- InputStream长度- Returns:
- 同步读操作的流对象
- Throws:
IOException- io异常
-