`

linux下open too many files错误Socket未正确关闭的处理方法

 
阅读更多

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();

 

分享到:
评论

相关推荐

    报错:too many open files处理

    NULL 博文链接:https://phl.iteye.com/blog/2256121

    socket accept报too many open files的原因

    socket accept报Too many open files的原因

    访问应用很慢,访问Nginx时,报错:accept() failed (24 Too many open files).docx

    该文档是介绍访问应用很慢,访问Nginx时,报错:accept() failed (24 Too many open files)的解决方案,与大家共享!

    Python错误提示:[Errno 24] Too many open files的分析与解决

    最近在工作中发现了一个错误,在执行多线程扫描脚本的时候频繁出现下面这个错误 HTTPConnectionPool(host=‘t.tips', port=80): Max retries exceeded with url: /index.php (Caused by NewConnectionError('...

    http连接关闭

    too many open files问题分析和解决

    Linux下应用程序大打开文件数的理解和修改

    运行在Linux系统上的Java程序运行了一段时间后出现Too many open files的异常情况。  这种情况常见于高并发访问文件系统,多线程网络连接等场景。程序经常访问的文件、socket在Linux中都是文件file,系统需要记录...

    bigslice:一种用于Go编程语言的无服务器集群计算系统

    大片 Bigslice是的无服务器集群数据处理系统。...如果测试因socket: too many open files失败socket: too many open files错误socket: too many open files ,请尝试增加打开文件的最大数量。 $ ulimit -n 2000

    Linux下查看进程打开的文件句柄数和如何修改方法

    如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“too many files open”的错误提示。如何知道当前进程打开了多少个文件句柄呢?下面一段小脚本可以帮你查看: 1.lsof -n |awk ‘{print $2}’|sort|...

    正确理解python中的关键字“with”与上下文管理器

    前言 如果你有阅读源码的习惯,...极端情况下会出现 “Too many open files” 的错误,因为系统允许你打开的最大文件数量是有限的。 同样,对于数据库,如果连接数过多而没有及时关闭的话,就可能会出现 “Can not c

    C语言FAQ 常见问题列表

    o 6.9 用预定义宏 #define Nullptr(type) (type *)0 帮助创建正确类型的空指针。 o 6.10 这有点奇怪。NULL 可以确保是 0, 但空 (null) 指针却不一定? o 6.11 为什么有那么多关于空指针的疑惑?为什么这些问题...

    mysql数据库my.cnf配置文件

    # 当open_file_limit被配置的时候,比较open_files_limit和max_connections*5的值,哪个大用哪个. table_open_cache = 128 # MySQL每打开一个表,都会读入一些数据到table_open_cache缓存中,当MySQL在这个缓存中找...

    《你必须知道的495个C语言问题》

    4.7 我有些解析外部结构的代码,但是它却崩溃了,显示出了“unaligned access”(未对齐的访问)的信息。这是什么意思? 47 作为函数参数的指针 47 4.8 我有个函数,它应该接受并初始化一个指针:void f(int *ip)...

    ICS delphixe10源码版

    .\Samples\delphi\SocketDemos Delphi Win32/Win64 Socket sample applications (all Delphi versions) .\Samples\delphi\sslinternet Delphi Win32/Win64 SSL-enabled sample applications (all Delphi versions) ....

    你必须知道的495个C语言问题(PDF)

    但是编译器报了错误信 息。难道在C语言中一个结构不能包含指向自己的指针吗? . . . . 3 1.7 怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返 回指向字符的指针的函数的指针的数组? . . . . . . . . . ...

    php.ini-development

    special sections cannot be overridden by user-defined INI files or ; at runtime. Currently, [PATH=] and [HOST=] sections only work under ; CGI/FastCGI. ; http://php.net/ini.sections ; Directives are...

    Sakemail

    )).0.9.3b- Many changes, I added a SakMsg component that make send binary attachments a snap. But have one problem, if you send as attach a file > 20 Kb, it doesn‘t work (I don‘t know why, maybe a ...

Global site tag (gtag.js) - Google Analytics