Java 端口的状态是怎样的?


1. 问题

  • 端口的状态是怎样的?

2. 解答

  • LISTENING(侦听):该端口正在开放,可以提供服务,FTP 服务启动后会首先处于该状态;
  • TIME_WAIT(等待连接):我方主动调用 close() 断开连接,收到对方确认后状态变为该状态。TCP 协议规定 TIME_WAIT 状态会一直持续 2 MSL(即两倍的分段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。处于 TIME_WAIT 状态的连接占用的资源不会被内核释放,所以服务器在可能的情况下,尽量不要主动断开连接,以减少 TIME_WAIT 状态造成的资源浪费;
  • ESTABLISHED(建立连接):两台机器已经产生了连接,正在通信交换数据;
  • CLOSE_WAIT(关闭):对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成该状态,此时我方要调用 close() 来使得连接正确关闭;
发布了310 篇原创文章 · 获赞 315 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Regino/article/details/105132673