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

mcgsok 2007-07-10 11:58:07
我的程序好像有socket句柄没有释放的情况,有没有什么好的办法来确定这一点呢?
...全文
2291 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dai_weitao 2007-07-11
  • 打赏
  • 举报
回复
剑心果然强人.

楼主如果想查socket的分配来源可以建个结构里面加上tid啊
awjx 2007-07-10
  • 打赏
  • 举报
回复
linux有句柄的概念吗?
mcgsok 2007-07-10
  • 打赏
  • 举报
回复
一般socket被close后,要多久才可以重新使用呢?
core 2007-07-10
  • 打赏
  • 举报
回复
socket是进程资源,无法确认是哪个线程打开的。
可以通过recv/read等IO接收函数,确认返回时是否应该关闭需未关闭
还有就是从协议/逻辑上查应该关闭而未关闭的地方
mcgsok 2007-07-10
  • 打赏
  • 举报
回复
非常感谢 Ropyn(剑心)
用Ropyn(剑心) 方法证明我的进程的确正在使用的数量过大(还没有去证实这个值是进程正在使用的socket还是对该进程历史使用过的socket的统计)
如果证明了存在没有释放的socket,那么用什么方法可以确定这个socket是哪个线程分配的呢?或者说有什么方法可以缩小查询代码的范围呢?(由于代码比较多,所以被这个问题搞得一头雾水)
cceczjxy 2007-07-10
  • 打赏
  • 举报
回复
ls正解
DanXer 2007-07-10
  • 打赏
  • 举报
回复
ls /proc/<进程pid>/fd -l | grep socket: | wc -l

23,215

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧