问题背景
网络通信中进程需要被分配一个号码,和IP组合起来,实现网络间通信时对应用的定位。
例如Mysql常用3306端口,HTTP协议常用80端口。
如果一个进程已经分配了一个端口,例如给Mysql分配了3306,启动了Mysql服务,
那么第二个进程再次使用3306端口就会报错:
"找不到占用端口的应用程序,以一种访问权限不允许的方式做了一个访问套接字的尝试"
问题解决方法1-换端口
直接换一个端口来使用
搜索8000-8200中哪个端口可用,新建一个search.bat脚本文件,复制下面内容后运行
bash
@echo off
setlocal enabledelayedexpansion
echo Checking ports 8000 to 8200...
for /L %%i in (8000,1,8200) do (
netstat -ano | findstr :%%i >nul
if errorlevel 1 (
echo Port %%i is available
) else (
echo Port %%i is in use
)
)
endlocal
pause
问题解决方法2-杀进程
查询哪个进程占用了端口
netstat -ano|findstr 8000
强制杀掉1104号进程
taskkill /F /PID 1104
问题解决方法3-重启服务(端口可能被假占用)
net stop winnat
net start winnat