一 需求分析
掌握Java语言的程序设计方法,理论结合实际操作巩固我们所学的现有知识,使用图形用户界面和socket通信实现一个聊天程序,充分利用线程知识,实现用一个局域网聊天室,同时学会处理各种异常和io输入输出流的应用,学习运用多线程操作。
聊天要以图形化界面的形式展现。可以实现聊天窗口的显示和关闭,同时可以载入客户输入的信息和读取输出的信息。在对话区域的右侧有滚动条,当该页面的面版满了,可以通过滚动条进行上拉和下拉。该对话区域可以实现多人同时进行聊天,也可以进行单人私聊。聊天内容前有显示是谁发送的消息,发送给谁等。
先启动一个服务器,设置服务器端口,然后启动客户端,通过连接IP地址和连接客户端成功之后即可以登入客户。只要连接共同的IP地址和共同的端口即可以通过线程和服务器、客户端之间的联系实现单人与单人私聊,单人与多人的群聊。
服务器的功能是通过连接服务器端口实现客户端和服务器之间的的链接,当客户端成功连接到服务器端的时候,就新建一个Server_Thread线程,用于处理与客户端的通信,并启动该线程。显示一些信息,用户登录登出消息。
客户端的功能是连接服务器之后,创建新客户ID,并能进行与其他用户聊天的聊天窗口。客户端会新建一个Client_Thread线程,用于客户端与服务器之间的通信,并启动线程。
服务端线程用于处理单个用户与其他用户进行通信,服务端线程一直处于运行状态,读取从客户端发来的消息,并对发来的消息类型进行处理,并将信息通过线程关系转发给不同的客户端。通过套接字跟迭代器遍历通知各线程用户上线,用户下线。
客户端线程是当一个客户端建立时,客户端用于处理发送信息。当客户登入时并且输入信息该线程会读取客户写入的信息,同时更新在线客户列表实现客户的上线和下线的通知。
局域网聊天程序包含以下几个模块:服务器端模块,服务器端线程模块,客户端模块和客户端线程模块。
源码下载地址:https://www.write-bug.com/article/1763.html