我现在在写网络版的坦克大战,就是服务器跟客户端分开在两台机器上运行。用的是Socket和serverSocket(长连接),我现在做到敌方坦克自由移动和自动发子弹(这两个已经做完了,方法就是在服务器端启动所有的敌方坦克线程和他对应的子弹线程,然后往客户端发送数据,客户端收到信息后就开始画相应的的图),现在在测试的时候出问题了,有的时候敌方坦克的子弹不会爆炸,运行一会儿4台敌方坦克里面就可能有一台的子弹不爆炸(出现是有一定的概率的),各位前辈对此有什么看法?是我的电脑性能不好导致服务器和客户端处理出问题,还是我写的代码有问题?子弹没40毫秒发送一次信息,坦克没80毫秒发送一次信息(都是敌方的)

解决方案 »

  1.   

    据我理解,子弹爆炸和坦克销毁两个操作都是在服务器端的。
    子弹爆炸:当子弹接触到坦克时,向两个客户端发送信息,让客户端显示在指定坐标处显示子弹炸毁坦克的图
    坦克销毁:服务器端销毁坦克,向两个客户端发送信息,让客户端显示某个指定的坦克移除。至于子弹的移动(后台),坦克的移动(后台)都是在服务器上运行的。所以不应该出现客户端坦克仍然存在的问题。除非你在客户端进行了业务处理。,或者服务器关于子弹击中和坦克销毁的代码有BUG。