1.6Android 学习+进度之五-通信规则及部分问题

来源:互联网 发布:淘宝上海华硕商城 编辑:程序博客网 时间:2024/05/18 03:47

这里说的通信规则主要意思是,当我手机orPad登录后,会发送哪些数据,然后服务器又会发送什么数据。这些方面的规则。

首先,服务器一定开在那里,我pad登录了,其实不用专门发登录包(只是为了方便显示罢了),然后服务器应该会把此时在线的用户给你发(当然也可以搞成群发,因为这个信息还是比较重要的)。所以这应该是规则的第一步

先把这个实现。具体流程,client发送后,先在第一栏显示自己,然后此时假如服务器发来用户(先默认是新用户),接受到后,则在下面显示新用户。

倒腾了很久,记录下一下,中间碰到的问题。

首先对于writer = new ObjectOutputStream(client.getOutputStream());
reader = new ObjectInputStream(client.getInputStream());

这俩个的先后顺序非常重要,否则,会发生死锁(就是先reader,怎么都进不去writer)了,很神奇。

其次,原本的服务器,来一个client,就进入arraylist,可是断开之后没反应,考虑到一半都是客户端去断开,因此,再某个catch里面,先把自己从list中除掉,然后exit(做一些相关的垃圾收集的函数)。

除此之外,好像没太多问题了,主要时间耗费在,找到具体问题所在。现在可以,两个用户都登录,然后后登录的用户登录后,服务器会给其他所有用户,发一个,新来用户,从而刷新表。