gpt4 book ai didi

java - 我需要关闭套接字的读取器吗?

转载 作者:行者123 更新时间:2023-12-02 13:00:35 24 4
gpt4 key购买 nike

因此,用 Java 创建一个服务器端应用程序。

就关闭连接而言,我只是想知道如果我在阅读器之前关闭套接字会发生什么。

例如服务器端

//imports
public static void main(String[] args) {
Socket socket = null;
try {
ServerSocket servsocket = new ServerSocket(8080);
socket = servsocket.accept();
//connection established
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
} catch(Exception e) {
e.printStackTrace();
} finally {
socket.close();
}

}

围绕来自套接字的输入流实例化的 bufferedreader 是否会随着套接字关闭而关闭,或者我手上是否存在潜在的内存泄漏?

最佳答案

Will the bufferedreader instantiated around the input stream from the socket close along with the socket closing

是的,或者更确切地说,它的底层 socket.getInputStream() 将关闭,BufferedReader 会在您下次调用它时注意到。

or do I have a potential memory leak on my hands?

没有。

但是您应该关闭的不是套接字或 Reader,而是您包裹在套接字上的最外层的 Writer 或 OutputStream,以确保它被冲洗。

关闭套接字的输入或输出流将关闭套接字的另一个流,关闭套接字将关闭这两个流。

关于java - 我需要关闭套接字的读取器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44318309/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com