简单在线聊天系统的实现(完成)
2016-04-16 17:58
399 查看
之前我已经构建了大体的框架,实现了多个客户端向服务器端发送,接下来只需要服务器端将接收到的数据发回到客户端便可。
step1:首先,在服务器端应该保存每个连接上的客户端,我将它们存在一个ArrayList中。然后在实现了Runnable接口的类中的run方法中挨个将所得到的信息发送出去。
step2:接下来改客户端的程序,保证客户端能够接受到,并显示到之前的TextArea上。因此在客户端这边应该也启用一个线程,等待着服务器端发来的数据并加以显示,因此当服务器端和客户端连接上时这个线程就应该启动,并且一旦接收到数据就显示到TextArea上。
step3:最后就是对一个小小问题的调整了。因为当你关闭了一个客户端时,再通过另一个客户端发送数据,服务器端返回发送回来时,由于ArrayList中还存在之前关闭的客户端,因此此时会发生SocketException,所以每当一个客户端关闭时,就应该将此客户端从ArrayList移走。
至此,一个简单的在线聊天系统便已经完成了,这个小项目也印证了一句话,程序真的是调出来的,发生错误没有关系,只要顺着你的思路慢慢修改总能达到你想要的效果。
step1:首先,在服务器端应该保存每个连接上的客户端,我将它们存在一个ArrayList中。然后在实现了Runnable接口的类中的run方法中挨个将所得到的信息发送出去。
step2:接下来改客户端的程序,保证客户端能够接受到,并显示到之前的TextArea上。因此在客户端这边应该也启用一个线程,等待着服务器端发来的数据并加以显示,因此当服务器端和客户端连接上时这个线程就应该启动,并且一旦接收到数据就显示到TextArea上。
step3:最后就是对一个小小问题的调整了。因为当你关闭了一个客户端时,再通过另一个客户端发送数据,服务器端返回发送回来时,由于ArrayList中还存在之前关闭的客户端,因此此时会发生SocketException,所以每当一个客户端关闭时,就应该将此客户端从ArrayList移走。
至此,一个简单的在线聊天系统便已经完成了,这个小项目也印证了一句话,程序真的是调出来的,发生错误没有关系,只要顺着你的思路慢慢修改总能达到你想要的效果。
相关文章推荐
- Redis
- Ubuntu 14.04 eclipse 提示框背景色更改
- php MYSQL 一条语句中COUNT出不同的条件
- 第七周学习进度条
- 如何让妹子认为你是数学天才
- 进程调度时机跟踪分析进程调度与进程切换的过程
- Java_oop_继承
- 稀疏自编码器
- Error:failed to find Build Tools revision 21.1.1
- 递归函数
- afnetworking NSCocoaErrorDomain Code=3840 解决
- 20145304 Java第七周学习报告
- Android Studio-强大的gradle用5招教你多渠道打包
- Turtlebot学习指导第二篇_安装Turtlebot软件包,配置主从机网络
- 工具类
- 将博客搬至51CTO
- 第七周学习进度条
- 166. Fraction to Recurring Decimal
- 跨浏览器处理事件
- 求二叉树中某个字符所在的层数