答辩总结
发现的问题:
1.登录问题:
要实现一个账号只能登录到一个客户端上面,我是在数据库中的用户表上面添加了一个字段,来表示在线与否,当登陆成功后就将状态设置为在线,然后检测窗口是否关闭,如果关闭就变为离线,但是这种写法有个问题,就是如果电脑不小心关机或者程序不正常关闭,都无法将状态更改;修改方法是在服务端中,当你登录成功之后就将那个socket存储在map中,然后如果连接还在,就表明在线,如果一个用户所对应的socket已经关闭,那就说明该用户已经离线;
2.服务端,客户端线程问题:
我的多线程学的比较差,就不太想搞这方面的东西,但是不得不搞,然后今天在将服务器添加线程的时候,发现了一个问题;我的想法是登录成功之前一直是短连接,然后登录成功后就将该用户所发来的线程传到那个线程里面,然后进行长连接,但是发现登录进去后socket就断开连接了,然后问了涂学姐和陈翔学长知道了可能是客户端在接受从服务端传来的数据时没有开线程导致线程阻塞的原因,然后我就发现了我的代码可能要大改了,申请要写个泛型类,今天花了很长的时间在修改代码之前,没什么进度,但是我知道这是不能急的,一定要搞好这些才能继续写下去;
3.还有er图的重画和项目的构思,之前写过项目的构思,现在回过头来看发现很多不合理的地方,我要继续完善er图和项目构思,争取明天将服务器和客户端的线程搞好,现在还是一团遭;