查看“︁分析网络端口被谁占用”︁的源代码
←
分析网络端口被谁占用
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于这些用户组的用户执行:*、
用户
您可以查看和复制此页面的源代码。
原因是CTS测试FAIL: <pre> -- testNoListeningLoopbackTcpPorts fail junit.framework.AssertionFailedError: Found port listening on addr=127.0.0.1, port=5678, UID=0 in /proc/net/tcp </pre> 那现在就要看 5678是被谁占用的: <pre> F:\tmp\a\0423> adb shell cat /proc/net/tcp sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode 0: 0100007F:13AD 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 5500 1 00000000 100 0 0 10 -1 1: 0100007F:162E 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 9210 1 00000000 100 0 0 10 -1 </pre> 上面的端口是16进制,5678的十六进制是 162E,即第二个,其inode为 9210 开始找这个inode对应的进程: <pre> F:\tmp\a\0423> adb shell ls -l /proc/*/fd/ | grep 9210 lrwx------ root system 2014-01-04 10:59 10 -> socket:[9210] </pre> 找到了,可是还是没显示出来对应的进程 但从上面可以确定这个文件的fd为10,因此可以用穷举来找到这个进程: <pre class="prettyprint"> for /l %%i in (1, 1, 2000) do ( @echo %%i adb shell ls -l /proc/%%i/fd/10 ) </pre> 另存为loop.bat,跑起,后面就可找到对应的进程号,为302: <pre> F:\tmp\android\0423>( adb shell ls -l /proc/302/fd/10 ) 302 lrwx------ root system 2014-01-04 10:59 10 -> socket:[9210] </pre>
返回
分析网络端口被谁占用
。
导航菜单
个人工具
创建账号
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
设置
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
所有页面
文件列表
页面信息
特殊页面