Java:URLConnection如何处理已完成的TCP连接?
当我使用 URLConnection 进行一些 HTTP 请求时,我只能关闭 InputStream 和 OutputStream,而不能关闭套接字。
该类是否自动关闭套接字?它是如何做到的?服务器会返回 FIN 还是其他什么?
如果我生成许多线程,其中包含每个 URLConnection,它会自动重用套接字吗?我捕获了一些包,它显示大约每 3 个连接共享 1 个套接字。
When I use URLConnection to do some HTTP requests, I could only close InputStream and OutputStream, but not the socket.
Does the class automatically close the socket? How does it do it? Will the server return a FIN or something else?
If I produce many threads including each URLConnection in them, will it automatically reuse the socket? I caught some packages, it shows about every 3 connections share 1 socket.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
它将套接字集中起来,以便将来在短时间内(我认为是 5 或 15 秒)内重用。 HttpURLConnection.disconnect() 是唯一真正关闭它的方法。
It pools the socket for possible future reuse within a short period of time, I think 5 or 15 seconds. HttpURLConnection.disconnect() is the only thing that actually closes it.