之前测试程序服务端程序遇到如下错误:Java.net.BindException:Cannotassignrequestedaddress:JVM_Bind,客户端报连接超时。
错误信息意思是Java虚拟机无法申请地址。由此分析可能是端口占用了,使用netstat-ano查看端口占用情况,发现并没有占用程序的端口。
接着分析可能IP绑定的问题,查看本机的IP信息和配置文件里的IP信息,发现IP信息不一致,配置文件的IP是不存在的,修改本机IP信息后,客户端重新连接还是报超时;重新启动服务端程序再没有报这个错误,客户端连接也连上了。
经过查阅资料分析原因:程序启动时会根据配置获取所有的IP地址,并逐个进行绑定,当发现需要绑定的IP不存在时就会报这个错误。
建议:一般更改配置文件或本机IP时最好重新启动一下程序(除非程序有重新加载配置的功能)。