实际开发中遇到 TCP/IP 相关的问题时,为了调试的方便,常用的做法是:将自己的电脑作为服务器,供其它客户端连接。但是因为自己的电脑安装软件众多,时不时就会出现端口相互冲突的问题,这个时候就需要查看本机端口使用情况。
和 Windows 下查看 PC 进程和端口一样,Mac 下也提供了可视化和命令行两种查看方式。
1 通过 Mac 自带的活动监视器查看
如果想要停止某个占用的端口,选中程序,点击左上角的停止按钮即可。
2 命令行查看
通过命令行的方式查看,比较抽象,对个人水平的要求高一点。输入命令:
lsof -i 端口号
,可以查看端口的详细端口占用情况。
比如,我在终端输入 lsof -i :80
后:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Google 1264 zhudongdong 126u IPv4 0x9c50cea430c13f35 0t0 TCP 192.168.19.101:52574->60.207.246.216:http (CLOSE_WAIT)
信息显示 Google 程序占用了 8080 端口,本机的线程号为 1264。如果我要使用 8080 端口,可以先把 Google 应用程序关闭。在命令行输入:
kill 8080
能看到 Google 应用程序顺利关闭。
通过以上两种方式,基本能够满足涉及到 TCP/IP 开发的工作,当然查看网络连接和进程号还可以通过其他命令,比如 ps
和 netstat
等,不过使用方式都是大同小异,感兴趣的可以参考:Linux netstat命令详解。