O引言
点对点通信是指网内工作站之间的直接通信.这将大大减轻文件服务器的负荷,并能够提高网络性
能和增加通信的灵活性.在一个现代企业中,部门问的点对点即时通信作为办公自动化的一个很重要的
组成部分,信息要及时传递给对方,同时也要注意信息安全。本文就是考虑到这一现状,给出了一种基于
企业局域网的点对点即时通信应用的例子.
1 WinSock及UDP协议概述
WinSock(Windows Socket的简称)规范是一套开放的、支持多种协议的Windows下的网络编程接
口,经过不断完善也成为Windows网络编程的事实上的标准.它是一个基于Socket模型的API,程序员
能够充分利用Windows消息驱动机制进行编程.WinSoek规范定义了一个TCP/IP网络上开发win—
dows程序的接口标准,它以DLL来实现Socket接口.WinSock位于TCP/IP协议栈和应用程序的中
间,程序利用WinSock及其对底层硬件的控制,来实现网络通信.微软公司在此基础上创建了WinSock
控件,专门用于Windows接口,与Sockets完全兼容.WinSock可以实现很强大的网络功能,但在应用中
需调用很多的库函数,编程比较复杂.
WinSock库函数都包含在WinSock.dll这个动态链接库中,这个动态链接库在系统中作为网络应用
程序与TCP/IP协议的中间连接的桥梁,如图1所示.网络编程中的点对点通信,通信双方对等,既有客
户机功能又有服务器的功能,编程简单,适合传输数据流少的场合,而且采用简单的UDP协议,易于实
现.因此本文中的点到点通信是基于WinSock控件来实现的.
UDP协议是英文User Datagram Protcd的缩写,即用户数据报协议,主要用来支持那些需要在计算机
之间传输数据的网络应用.包括网络视频会议系统在内的众多的客户服务器模式的网络应用都需要使用
UDP协议.UDP通信协议就是一种非连接式的通信协议,主要用于传递少量数据,它不需要建立有效的通讯
连接.在UDP应用中,客户端和服务器只需指定服务器的IP地址和应用的端口号,两者之间就可以通信
了.它提供的是数据的单向传输.在数据传输中因无需建立连接,故可省去很多连接时间.
与我们所熟知的TCP协议一样,UDP协议直接位于IP协议TCP都属于传输层协议.UDP协议的主要作用是将网
络数据流量压缩成数据报的形式.一个典型的数据报就是一个二进制数据的传输单位.每一个数据报
的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据.UDP报头由4个域组成,其
中每个域各占用2个字节,具体如下:源端口号;目标端口号;数据报长度;校验值,如图2所示.
|