基于TCP/IP协议的实时语音聊天系统的实现
套接字(Socket)是TCP/IP的基本操作单位,可以当作是多个主机之间进行双向通信的端点。套接字是基于C/S这种经典模型设计的,它的功能是利用一个对端双向的通信方式,将网络上跨区域的应用程序进行连接,然后进行资源的共享和数据的交换[5]。套接字主要包含三个参数,分别是通信的目标IP地址、所用的传输层协议(TCP或UDP)以及所用的端口号。通过把这些参数衔接起来,与一个套接字绑定,应用层就能和传输层利用套接字接口,把源于不同应用程序进程和网络连接的通信区分开,使数据传输的并发服务得以实现。
套接字能看作在两个程序之间进行通信连接中的一个中间点,连接应用程序和网络驱动程序,在应用程序中创建的套接字与网络驱动之间通过绑定建立关系后,应用程序给套接字传送的数据,再从套接字网络驱动程序发送到网络中。电脑从网络上收到与该套接字绑定IP地址和端口号相关的数据后,由网络驱动程序交给套接字,应用程序就能够从套接字中提取接收到的数据,这就是网络应用程序通过套接字进行数据收发的过程。
2.2.2 套接字通信过程
4
基于TCP/IP协议的实时语音聊天系统的实现
通过网络进行通信,最少需要两个套接字,其中一个客户端(Client Socket)运行,另一个在服务器端(Server Socket)服务。依据连接启动的方式和本地要连接的目标,Socket之间的连接过程分为服务器监听、客户端请求和连接确认三个步骤。
服务器监听指的是Server Socket并不能定位具体的Client Socket,而是处于等待连接的状态,实时监控网络状态。客户端请求是由Client Socket向Server Socket提出连接请求。因此,客户端的Socket必须先确定出它要连接服务器的Socket,并指明Server Socket的地址端口号,最后再向Server Socket 提出连接请求,连接确认是当Server Socket监听到或收到Client Socket的连接请求时响应Client Socket的请求,建立一个全新的线程,并把Server Socket的信息发送给客户端,一旦当客户端确认连接时,连接就建立成功了。而服务器端则继续处于监听状态,继续接收其他客户端的连接请求。
2.3 P2P模型
5
基于TCP/IP协议的实时语音聊天系统的实现
P2P(Peer to Peer,对等网络)模型,是指网络中的物理节点在逻辑上以相同的地位进行通信的模型,而不是处理能力的对等[6]。对于传统的集中式C/S模型,其减弱了服务器的概念。系统中的各个节点不再区分服务器和客户端的角色关系。每个节点既可请求服务,也可提供服务,节点之间可以直接交换资源和服务而不必通过服务器[7]。用户之间直接共享资源是P2P的最大特点,这个特点使PC变成拥有Server和Client双重特征的设备。目前P2P的构架手段主要有集中目录式P2P、纯P2P和混合P2P模式三种[8]。如图2-2所示。
6
基于TCP/IP协议的实时语音聊天系统的实现
图2-2 P2P模型的三种模式
集中目录式P2P模式也称为非纯粹的P2P结构,是最早出现的P2P应用模式,一如既往的具备中心化这个特点,最具有代表性的就是用于共享MP3音乐文件的Napster。在这种模式中,各个节点都与中心目录服务器建立连接,中心目录服务器负责各个节点的内容,当节点发送出请求时,中心目录服务器会依据节点的请求搜寻出合乎该节点需求的节点,最后文件交换就直接在这两个节点之间进行。
纯P2P模型中资源随机地分布在系统所有的节点中,每个节点的请求都会被广播给全部和它直接连接的节点,如果这些节点中都不包含所请求的文件,这些节点就会把这个请求接着广播给全部和它们直接连接的节点,直到搜寻到所请求的文件或者广播的次数超过了某个数值为止。
7
基于TCP/IP协议的实时语音聊天系统的实现
混合式P2P凝聚了中心化P2P和纯P2P各自的优点,选择性能(处理、存储、带宽等方面)较高的节点当作超级节点,在所有超级节点中储存了系统中其它节点的信息,混合式P2P中,搜索数据包仅在超级节点之间转发,由超级节点将搜寻到的请求转发给合适的叶子节点。
2.4 MFC开发技术
2.4.1 MFC的特点
MFC是由微软提供并运用于在C++环境下编写程序的一个框架和引擎,VC++是在Windows环境下开发人员使用的专业软件开发平台,MFC就是挂在它上面的一个辅助软件开发包,MFC是与VC++密不可分的一部分。
8
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于TCPIP协议的实时语音聊天系统的实现(4)在线全文阅读。
相关推荐: