目的:研究生高级计算机网络课程大作业--实现DV算法的router编写(JAVA)
问题描述:
使用UDP协议进行通信,好不容易使线程Thread安全地关闭,却无法再次获取 同一个(IP,Port) 上的连接。
关于线程的安全终止这里再说两句,stop(), interrupt() ,destroy() 都是被废弃的、不安全的,最好让线程自动运行完毕。作者这里是通过直接向socket发出stop命令 实现的,阻塞的线程受到stop命令后设置 stop = true 然后可结束线程。
解决办法:
调用 socket.close() 之后必须调用 serversocket.close() ,这是因为socket对server发出断开连接请求时,只有在server回复ACK 后socket才会真正地释放连接,否则就会一直占用端口,导致无法重新建立连接,所以server也需要关闭。
部分代码如下:(关键在t.clos