博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux下open too many files错误Socket未正确关闭的处理方法
阅读量:4617 次
发布时间:2019-06-09

本文共 459 字,大约阅读时间需要 1 分钟。

1. 首先用lsof -p PID 查看一下打开文件的列表如果出现下图状况基本就两种可能,stream未关闭或者socket未关闭,出现can't identify protocol字样

2. 用netstat -anp | grep PID查看端口占用情况,若出现下图情况,证明Socket未关闭

原因:

  是因为Socket协议本身,若正确关闭一个Socket需要往返消息4次,若中途有未接到的消息就会停留在某个状态下,比如当前的CLOSE_WAIT

解决办法:

  客户端:主动关闭任何一个socket,尽量在finally中加入socket.close()语句。

  服务器:设置读取超时时间如:socket.setSoTimeout(3000);其次在用完之后主动关闭,做法同客户端方式。同时在任何的异常加入socket.shutdownInput();socket.shutdownOutput();

 

转载于:https://www.cnblogs.com/flykarry/p/3844055.html

你可能感兴趣的文章
loj #2007. 「SCOI2015」国旗计划
查看>>
大照片背景在网页设计中应用的精美作品范例(下篇)
查看>>
c# 发送邮件、附件 分类: C# 2014-12-...
查看>>
对360来说,江湖上再无“搜狗”这个传说
查看>>
composer
查看>>
OpenCV特征点检测——ORB特征
查看>>
mysql的csv数据导入与导出
查看>>
leetcode笔记:Pascal's Triangle
查看>>
java Hibernate UUID代码
查看>>
【QwQ】乱七八糟的置顶
查看>>
浅谈Scrapy爬虫(一)
查看>>
Eclipse编译快捷键
查看>>
Spring MVC的一些学习笔记-入门配置和HttpMessageConverter
查看>>
p2p手机绑定
查看>>
【AWS】AWS使用笔记
查看>>
画框输出三角函数
查看>>
2016-03-15 webview loadwebview html
查看>>
停更说明
查看>>
JAVA servlet 上传文件(commons-fileupload, commons-io)
查看>>
ASP.NET性能优化之构建自定义文件缓存
查看>>