论文摘要
当今即时通讯(Instant Messaging)是互联网应用的一大热点。其通过建立虚拟的网络社区,为用户提供了网络沟通平台。由于即时通讯软件的实时性和易用性,使它拥有了很广泛的使用者。然而,随着互联网的发展,对即时通讯系统的要求也不断提升,显然对即时通讯系统功能上的完善好用变得越来越重要。设计一个即时通讯系统需要诸多编程的知识和能力。它涉及到网络编程、多线程编程、数据库编程、图形界面编程等等。这些对开发人员的系统设计水平与开发能力是一个综合考验。该系统的开发需要经历系统分析、设计、实现以及测试四个阶段。实现即时通讯软件的网络结构通常包括C/S和P2P。C/S的优点在于系统可以只在服务器上操作数据库,加强了系统的安全性。而P2P技术正日益受到重视,与C/S技术相比,它具有网络可伸缩性好、资源的利用率高、节省投资等优点。构建即时通讯软件不可避免要用到多线程技术。使用多线程技术会遇到有关线程通讯和线程同步等诸多问题。线程同步是关系到多线程程序是否能正确运行的关键问题。本文将探讨如何基于C/S和P2P网络结构及基于TCP协议的网络编程技术和数据库编程技术来实现的一个包括服务器和客户端程序的即时通讯系统,并给出网络设计方案、系统架构和通讯协议。此外,本文还对于系统实现中遇到的种种问题给出了解决方案。