一、应用需求。
通过java语言编程实现聊天室(基于TCP),包含客户端和服务器端。可以实现多个客户端进入聊天室群聊和私聊。多个客户端登录后,可以实现多人聊天,也可以通过向某个客户端发信息实现私聊。
二、技术实施
2.1 客户端
每个客户端登录时需要写出名字,服务器上会显示每个用户的ID已进入。通过发送给其他的客户端(xx已进入聊天室),其他的客户端通过接受信息显示到页面上。用户可直接输入信息可显示到每一个客户端的页面上即实现了群聊(多对多广播)。通过@+姓名并输入信息可以实现私聊,(一对一单播)。
2.2 服务器端
通过获取客户端的id显示到服务器端上。监听各个客户端的请求,当客户端发送请求,服务器接收该请求,服务器处理请求后将结果返回给客户端(三次握手)并重复操作,实现多次聊天。
三、实施过程及测试
3.1 服务器
3.1.1 创建ServerSocket(服务器套接字)
创建ServerSocket后绑定端口,等待客户端的请求。
调用服务器的接收函数(accept)并赋值给客户端类的Socket,获取当前客户端计算机的IP地址并用文本显示,输出到服务器上。
3.1.2 创建链表List
创建链表用以存放每个客户端的信息。新建客户端请求类并添加到链表中,创建新线程并开启。
3.1.3 创建线程类