add closeable

This commit is contained in:
Looly 2019-09-11 09:13:07 +08:00
parent 96e377f414
commit 3288f26795
6 changed files with 19 additions and 4 deletions

View File

@ -18,6 +18,7 @@
* 【http】 HttpRequest增加setChunkedStreamingMode方法issue#525@Github * 【http】 HttpRequest增加setChunkedStreamingMode方法issue#525@Github
* 【setting】 SettingLoader支持自定义分隔符 * 【setting】 SettingLoader支持自定义分隔符
* 【http】 Content-Type添加默认值issue#I11YHI@Gitee * 【http】 Content-Type添加默认值issue#I11YHI@Gitee
* 【socket】 增加Closeable接口issue#532@Github
### Bug修复 ### Bug修复
* 【core】 修复NetUtil.getUsableLocalPort问题pr#69@Gitee * 【core】 修复NetUtil.getUsableLocalPort问题pr#69@Gitee

View File

@ -1,5 +1,6 @@
package cn.hutool.socket.aio; package cn.hutool.socket.aio;
import java.io.Closeable;
import java.io.IOException; import java.io.IOException;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.net.SocketOption; import java.net.SocketOption;
@ -19,7 +20,7 @@ import cn.hutool.socket.SocketRuntimeException;
* @author looly * @author looly
* @since 4.5.0 * @since 4.5.0
*/ */
public class AioClient { public class AioClient implements Closeable{
private AioSession session; private AioSession session;
@ -102,6 +103,7 @@ public class AioClient {
/** /**
* 关闭客户端 * 关闭客户端
*/ */
@Override
public void close() { public void close() {
this.session.close(); this.session.close();
} }

View File

@ -1,5 +1,6 @@
package cn.hutool.socket.aio; package cn.hutool.socket.aio;
import java.io.Closeable;
import java.io.IOException; import java.io.IOException;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.net.SocketOption; import java.net.SocketOption;
@ -21,7 +22,7 @@ import cn.hutool.socket.SocketConfig;
* @author looly * @author looly
* *
*/ */
public class AioServer { public class AioServer implements Closeable{
private static final Log log = LogFactory.get(); private static final Log log = LogFactory.get();
private static AcceptHandler ACCEPT_HANDLER = new AcceptHandler(); private static AcceptHandler ACCEPT_HANDLER = new AcceptHandler();
@ -148,6 +149,7 @@ public class AioServer {
/** /**
* 关闭服务 * 关闭服务
*/ */
@Override
public void close() { public void close() {
IoUtil.close(this.channel); IoUtil.close(this.channel);

View File

@ -1,5 +1,6 @@
package cn.hutool.socket.aio; package cn.hutool.socket.aio;
import java.io.Closeable;
import java.io.IOException; import java.io.IOException;
import java.net.SocketAddress; import java.net.SocketAddress;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
@ -20,7 +21,7 @@ import cn.hutool.socket.SocketUtil;
* @author looly * @author looly
* *
*/ */
public class AioSession { public class AioSession implements Closeable{
private static final ReadHandler READ_HANDLER = new ReadHandler(); private static final ReadHandler READ_HANDLER = new ReadHandler();
@ -190,6 +191,7 @@ public class AioSession {
/** /**
* 关闭会话 * 关闭会话
*/ */
@Override
public void close() { public void close() {
IoUtil.close(this.channel); IoUtil.close(this.channel);
this.readBuffer = null; this.readBuffer = null;

View File

@ -1,11 +1,13 @@
package cn.hutool.socket.nio; package cn.hutool.socket.nio;
import java.io.Closeable;
import java.io.IOException; import java.io.IOException;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.channels.SocketChannel; import java.nio.channels.SocketChannel;
import cn.hutool.core.io.IORuntimeException; import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
/** /**
* NIO客户端 * NIO客户端
@ -13,7 +15,7 @@ import cn.hutool.core.io.IORuntimeException;
* @author looly * @author looly
* @since 4.4.5 * @since 4.4.5
*/ */
public class NioClient { public class NioClient implements Closeable{
private SocketChannel channel; private SocketChannel channel;
@ -80,4 +82,9 @@ public class NioClient {
} }
return this; return this;
} }
@Override
public void close() {
IoUtil.close(this.channel);
}
} }

View File

@ -15,6 +15,7 @@ public class AioServerTest {
public static void main(String[] args) { public static void main(String[] args) {
@SuppressWarnings("resource")
AioServer aioServer = new AioServer(8899); AioServer aioServer = new AioServer(8899);
aioServer.setIoAction(new SimpleIoAction() { aioServer.setIoAction(new SimpleIoAction() {