唉,这学期前几天看了一点java socket,然后仿照书上的程序做了一个网络五子棋,一局下来没问题,但想再来一局就出问题了,怎么也找不出问题出在哪,弄了半个月都弄不好,成了这学期的遗憾啊。现把程序发上来,求耐心的前辈帮忙看一下问题出在哪,程序很长,耐心看者,100分的回报,谢谢。第一局结束后,随便某一方选择“菜单———新游戏”或者“菜单————结束当前游戏”,然后另一方同意就可意继续下一局了,选择“新游戏”和“结束新游戏”的功能实际是一样的,都是重新开始新的一局,但选择两者,错误还不一样,郁闷。
http://blog.csdn.net/jqctop1/article/details/6612795多谢大家的帮助了。
http://blog.csdn.net/jqctop1/article/details/6612795多谢大家的帮助了。
1.NewGameTask里面的流通信在对局结束后未关闭,然后NewGame的话又重新注册player1和player2这两个Socket的监听,这样会有问题;
2.player申请结束当前局的时候没有把之前生成的NewGameTask的线程停止(粗略看了一下貌似是这样),这样导致了跟上面那个同样的问题,更麻烦的是,有两个处理游戏的NewGameTask的线程在跑,肯定会出问题。个人意见,供LZ参考