基于 WinSock 的即时通信软件功能原理模拟
一.设计的目的与要求
利用 WinSock 进行点对点通信,工作机制模仿即时通信软件的基本功能。分为客
服部分和服务器部分两块,客服部分类似一般通信软件,服务器部分主要提供客户端
用户基本数据配置。
基于 Socket 的局域网聊天室是此类局域网通信软件的具体实例之一,它很好地诠
释了 Socket 通信的原理,并且在企业内部通信、教学、讨论等应用中都具有一定的实
用价值。它具有信息收发速度快,保密性好,占用网络带宽资源低,占用服务器吞吐
能力低,易于编程实现等优点。
二.设计目标和主要技术指标
本项目的设计目标为一个高性能的,易于使用的,面向企业内部通信需求的局域
网即时信息软件。它应具有如下特征:
具有高性能,可同时处理多个连接请求。
对硬件要求低,适应范围广,运行稳定。
具有高度可定制性,客户可根据不同的具体需求方便地更改软件的特性。
具有一定的容错性能。
最终的软件产品应具有如下功能:
客户端与服务器端功能独立,可独立运行在不同的计算机上或运行在同一台计
算机上,具有最大的灵活性。客户端易于使用。服务器端运行稳定,具有可管理性,
并具有一定的容错性能。客户端与服务器端可运行在多种硬件平台,具有良好的兼容
性能。
三.设计原理与实现
在 Internet 上的通信程序一般都是以服务器提供服务端连接响应,使用者通过客户
端程序登录到服务器,就可以与登录在同一服务器上的用户交谈,这是一个面向连接
的通信过程。因此,程序要在 TCP/IP 环境下,实现服务器端和客户端两部分程序。
自从 80 年代初首次在 Berkerley UNIX 4.1 上实现以来,Socket 已经在多种平台上
实现了不同的版本, 包括最初的 BSD Socket 和 Winsock (Windows Socket), 它是
Microsoft 为 Windows 开发的一套 TCP/IP API(Application Programming Interface),
以及 Java Socket,它是 Sun Microsystem 公司为 JAVA 制定的比较低端的网络通讯
API。
Socket 从网络连接的角度来讲,是网络通讯连接的端点,它提供点到点的连接。
而从程序设计的角度来讲,它也是编写网络通讯程序的 API。
作为网络连接时,Socket 的概念可以用图示 1 来表示: