问题:

1、Java NIO 出现大量CLOSE_WAIT或TIME_WAIT的端口无法释放

CLOSE_WAIT:

参考:http://my.oschina.net/geecoodeer/blog/191774、http://blog.csdn.net/ruixj/article/details/1871979

解决:检查代码可发现,一端的socket调用了close,但是另外一端的socket没有调用close,于是在另外一端加上了socket.close()函数,使得CLOSE_WAIT消失,TIME_WAIT出现。

一般来说,到了TIME_WAIT就是比较正常的情况了,下面是TCP状态转换图:

close操作相当于:(操作/A操作后状态/B操作后状态)

A:我不想说了,但是我可以听到你的(close,发送FIN/A:FIN_WAIT_1/B:ESTABLEISHED)

B:点头(接收FIN,发送ACK/A:FIN_WAIT_1/B:CLOSE_WAIT)

A:点头(接收ACK/A:FIN_WAIT_2/B:CLOSE_WAIT)

B:我也不想说了,我在有限时间内还可以听到你的(close,发送FIN/A:FIN_WAIT_2/B:TIME_WAIT)

A:点头(接收FIN,发送ACK/A:TIME_WAIT/B:TIME_WAIT)

B:点头(接收ACK/A:TIME_WAIT/B:CLOSED)

TIME_WAIT:

参考:http://my.oschina.net/geecoodeer/blog/191774、http://www.blogjava.net/cooperzh/archive/2011/12/20/366884.html

解决:socket.setReuseAddress(true);

2、Java NIO 多线程程序长时间运行时出现“打开的文件过多”错误

参考:无

解决:

1)ls /proc/进程号/fd,发现超多被占用的文件描述符

2)检查代码,查看一下哪里没有关闭SocketChannel和Selector(特别是Selector!由于是多线程,子线程打开的资源忘记关闭会遗留并造成悲剧啊:()

java nio close_wait_Java NIO 操作总结相关推荐

  1. java大文件读写操作,java nio 之MappedByteBuffer,高效文件/内存映射

    http://langgufu.iteye.com/blog/2107023 java处理大文件,一般用BufferedReader,BufferedInputStream这类带缓冲的Io类,不过如果 ...

  2. Java BIO、NIO、AIO

    同步与异步 同步与异步的概念, 关注的是 消息通信机制 同步是指发出一个请求, 在没有得到结果之前该请求就不返回结果, 请求返回时, 也就得到结果了. 比如洗衣服, 把衣服放在洗衣机里, 没有洗好之前 ...

  3. NIO详解(十三):Java IO 和NIO 总结

    1. 概述 下面总结了Java NIO和IO之间的主要差别 IO NIO 面向流 面向缓冲 阻塞IO 非阻塞IO 无 选择器 2. Java IO和 NIO的主要区别 2.1 面向流和面向缓冲区 Ja ...

  4. 【学习笔记】JAVA IO与NIO(new IO)的对比与不同IO模型的理解

    JAVA IO 分类: 几种IO 模型 1. 阻塞 IO 模型 2. 非阻塞 IO 模型 JAVA NIO 多路复用 IO 模型(即Java中的NIO) JAVA IO 思维导图: 分类: 按照流的方 ...

  5. Java NIO、NIO.2学习笔记

    http://www.cnblogs.com/littlehann/p/3720396.html 相关学习资料   http://www.molotang.com/articles/903.html ...

  6. Java IO(BIO, NIO, AIO) 总结

    文章转载自:JavaGuide 目录 BIO,NIO,AIO 总结 同步与异步 阻塞和非阻塞 1. BIO (Blocking I/O) 1.1 传统 BIO 1.2 伪异步 IO 1.3 代码示例 ...

  7. java中io.nio.aio_Java中网络IO的实现方式-BIO、NIO、AIO

    在网络编程中,接触到最多的就是利用Socket进行网络通信开发.在Java中主要是以下三种实现方式BIO.NIO.AIO. 关于这三个概念的辨析以前一直都是好像懂,但是表达的不是很清楚,下面做个总结完 ...

  8. java 修改最大nio连接数_关于java流的几个概念:IO、BIO、NIO、AIO,有几个人全知道?...

    关于同步.阻塞的知识我之前的文章有介绍,所以关于流用到这些概念与之前多线程用的概念一样. 下面具体来看看java中的几种流 IO/BIO BIO就是指IO,即传统的Blocking IO,即同步并阻塞 ...

  9. java 修改最大nio连接数_携程基于Quasar协程的NIO实践

    IO密集型系统在高并发场景下,会有大量线程处于阻塞状态,性能低下,JAVA上成熟的非阻塞IO(NIO)技术可解决该问题.目前Java项目对接NIO的方式主要依靠回调,代码复杂度高,降低了代码可读性与可 ...

最新文章

  1. vs2015编译linux源码,使用Visual Studio 2017(VS2017)编译OpenCC 1.0.4 (Open Chinese Convert)源代码...
  2. 解决Maven项目pom.xml文件报xxx\target\classes\META-INF\MANIFEST.MF (系统找不到指定的路径。)问题...
  3. ida pro 7.5 idapython学习
  4. ubuntu多版本python和pip切换
  5. 初识 RESTful API规范
  6. IOS 为UILabel添加长按复制功能
  7. 写给人类的机器学习 翻译完成
  8. sklearn计算准确率,召回率,精确率,F1函数
  9. redis info 信息
  10. python爬虫异步加载图片_python爬虫程序 异步加载爬虫knewone.com实例
  11. 虚拟机连接锐捷校园网
  12. 数字通信原理的几个理解
  13. 角度与弧度的转换 C语言
  14. python输出数字三角形_Python|2020蓝桥杯之数字三角形
  15. css3实现尖角,css3如何做 尖角
  16. S3C2440 开发板实战(8):中断驱动
  17. 使用PostgreSQL 9.6 架设mediawiki服务器
  18. Cephalocon APAC 2018在北京成功举办
  19. 中值滤波算法--C 语言实现
  20. Linux下_bak后缀文件是什么?

热门文章

  1. 3DLC系列之:图像窗口
  2. wxpython选择框_wxpython 对话框
  3. C/C++文件IO输入输出操作——FILE*、fstream、windowsAPI
  4. [paper] Hourglass
  5. WBV334U01-S/BF-WBV334a02_0.5直流电流电压传感器
  6. understand 中文注释乱码解决方法
  7. 详细讲解架设FTP服务器的两种方法
  8. 分类任务中常用的Label smoothing
  9. 在集群的操作机上执行命令为什么会出现权限被拒绝_进制型IP泛站群的操作方法...
  10. 5G NR的加扰与解扰