linux下面怎么查询某个进程正在使用的socket句柄数量

linux下面怎么查询某个进程正在使用的socket句柄数量,第1张

可以通过指令查询当前进程打开了多少句柄,Linux下有exec函数族可以执行指令,把指令写进去就行了。

-查看当前进程打开了多少句柄数

# lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more

-根据ID号来查看进程名。

# ps aef|grep ID号

满意请采纳。

1、虚拟内存太小或者C盘满了。如果是这种,请自己查资料加大虚拟内存量,并保证C盘还有充足的空间。

2、是你电脑里面某个软件的问题。

这个错误可能是你计算机的Socket句柄资源用尽导致的,能够造成这种现象的一种情况就是你的计算机的某个程序不断的向某个连接发出连接申请,但是始终没能连上,没连上就会引发一个错误,如果编程的人没有写释放资源的代码,那么这个连接就始终占据着着一个句柄,于是由于不断的连接,最终导致Socket句柄资源耗尽。

如果你运行的都是很正常的程序,那么很可能进行连接的就是一些木马程序,比如盗取密码的程序需要将盗取的密码发送到某台机器上等等。如果杀毒没杀到,就装个防火墙看看,追求干脆的话就重新安装系统。

3、注册表中的以下二项出现错误

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock2

解决办法:备份,然后找一台相同系统的机器,将以下注册表分支导出存为二个文件,

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock2

肯定是你的设置问题!为什么127.0.0.1进入没问题。你用内网就会没用!你看看你的软件设置。。还有网你用外网试看看!~

/* Net check Make sure you have not used OUT OF BAND DATA AND YOU CAN use OOB */int netcheck(int fd) {int buf_size = 1024 char buf[buf_size] //clear OOB DATA recv(fd, buf, buf_size) if(send(fd, (void *)"\0", 1, MSG_OOB) <0 ){fprintf(stderr, "Connection[%d] send OOB failed, %s", fd, strerror(errno)) return -1 }return 0}/* Net check Make sure you have not used OUT OF BAND DATA AND YOU CAN use OOB */int netcheck(int fd) {int buf_size = 1024 char buf[buf_size] //clear OOB DATA recv(fd, buf, buf_size) if(send(fd, (void *)"\0", 1, MSG_OOB) <0 ){fprintf(stderr, "Connection[%d] send OOB failed, %s", fd, strerror(errno)) return -1 }return 0}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8401150.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存