最红网络聊天室【一种基于Java,Swing的网络聊天室的设计与实现】

  摘要:网络聊天室作为一种即时通信软件使用率非常高。网络聊天室的开发语言也很多,利用Java语言的Socket、多线程、Swing、I/O等技术开发了一个网络聊天室,对于学习Java的面向对象编程具有很大帮助,尤其对于《网络编程》课程的教学具有重要的指导作用。
  关键词:Java;Swing;网络聊天室
  0 引言
  网络聊天室作为一种即时通信软件使用率非常高,通过聊天室可以与世界上任何一个角落的人实现信息的交流。网络聊天室的开发语言有很多。本文选择Java作为开发语言。Jaga是SUN推出的新一代网络编程语言,由于其具有面向对象、支持多线程、安全、跨平台等多种特征而得到了广泛的应用。本文综合利用Java Socket、多线程、Swing、I/O等技术开发了一个网络聊天室,对于学习Java的面向对象编程具有很大帮助,尤其对于《网络编程》课程的教学具有重要的指导作用。
  1 网络聊天室的设计
  本聊天室采用C/S结构,即客户端/服务器模式。C/S结构是目前较为流行的网络编程模型、通信双方分为客户端和服务器端,客户端在需要服务时向服务器提出连接请求。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户。为该客户提供服务,同时自己继续监听服务端口,使后来的客户也能得到服务,即一个服务器可以为多个客户提供服务。
  (1)服务器端的功能:本聊天室的服务器端通过多线程技术可以为多个客户端提供服务。服务器端不断地监听客户端的连接请求,建立连接,接收、显示、转发客户端的聊天消息(即客户端发送的信息都是通过服务器端转发给其他客户端的),还可以给所有客户端发送系统消息。
  (2)客户端的功能:本聊天室的客户端可以发送聊天消息,显示聊天界面。显示聊天记录,退出聊天室时向服务器发送离线消息,使服务器更新在线人数,并向所有在线用户转发该客户离线的消息。本聊天室的系统功能模块图如图1所示。
  2 网络聊天室的实现
  2.1服务器端的实现
  在C/S结构的网络程序中,服务器端总是作为守护进程始终运行,等待客户端的请求连接。通常一个服务器可以为多个客户端提供服务。这在Java中可以通过多线程编程机制来实现。基于多线程的通信方式可以大大提高服务器的利用效率,并能使服务器具备完善的服务功能。
  本聊天室的服务器端采Java Swing技术的图形用户界面,首次启动后的界面如图2所示。当有客户端与之连接后,界面如图3所示。本聊天室利用Java Socket实现客户端和服务器端的连接。Socket是网络上运行的两个程序间双向通信的一端,它既可以接收请求,也可以发送请求,利用它可以很方便地进行网络数据传输。
  服务器端的文件名为Server.java。在该文件中新建一个Server类,作为服务器端的主类,建立连接时使用的是java.net包中提供的面向TCP协议的Server-Socket类。其主要的实现方法和类见表1。
  2.2客户端的实现
  在C/S结构的网络程序中,客户端是请求的发出者,当有需求时。客户端向服务器端发出连接请求,服务器给予响应。本聊天室的客户端也是Java Swing的图形用户界面窗口,通过java.net包中的面向TCP协议的Socket类实现与服务器端的连接。启动两个客户端进行聊天,界面如图4和图5所示。
  客户端的文件名为Client.java。在该文件中新建一个Client类,作为客户端的主类。其主要的实现方法和类见表2。
  3 结语
  本聊天室界面友好,虽然与大型复杂聊天室相比在功能上还稍有欠缺,但是其作为聊天室的主体功能已经具备,尤其是其难易程度适中,综合运用了Java面向对象的多种知识,是高职院校《网络编程》课的一个很好的实例,对于《网络编程》课的教学具有重要的指导作用,笔者在讲授《网络编程》课时,在教师机运行学生编写的服务器端程序Server.java,每名学生都运行自己编写的客户端程序Client.java,与服务器连接实现全班学生聊天,学生对此非常感兴趣,教学效果良好。后续工作可以继续扩展此聊天室的功能,例如实现私聊、发送文件、图片等。

推荐访问:聊天室 设计 网络 Java