网络音频点播软件的设计与开发实验.pdfVIP

  • 0
  • 0
  • 约9.6千字
  • 约 7页
  • 2017-10-10 发布于湖北
  • 举报

网络音频点播软件的设计与开发实验.pdf

网络音频点播软件的设计与开发实验

网络音频点播软件的设计与开发实验 一、实验目的 掌握基于 Socket 的C/S 编程的方法 掌握 Windows平台 Socket 网络应用程序的开发方法 掌握 Windows平台多线程网络程序的开发方法 二、实验内容 在 Windows2000平台下,使用 Microsoft Visual C++6.0,基于 Socket 开发网络音频 点播程序,服务器端能够捕捉音频流并发送到需要点播的客户端,客户端接收音频流 后播放。不同客户端之间可以互相发送文本。 三、实验原理  1.Winsock概述 在 Win32 平台上 Winsock 是访问网络层协议的首选接口。而且在每个 Windows平 台上,Winsock都以不同形式存在着。Winsock 与 Linux 的 Socket 一样,是网络编程接 口, 而不是协议。W insock是Unix的Berkeley(BSD)套接字的基础上发展起来的,W insock  有多个版本,从  Windows95、WinNt4  开始,系统就 内置了  Winsock1.1,后来到了  Windows98、windows2000,它内置的 Winsock DLL 已更新为 Winsock2.2。Winsock1.1  有 2 种 I/O 方,2 种 I/O 模型,到了 Winsock2.2,则有了 2 种 I/O 方式,5 种 I/O 模型。 另外,Winsock2.2 对 Socket 进行了很多扩充与改进,如重叠 I/O 模型、服务质量控制 等。Winsock 的版本是向前兼容的,也就是说,使用 Winsock1.1编程接口的应用程序, 可以在 Winsock2.2 的计算机上运行。  2.Winsock编程基础  Winsock 与 Linux 的 socket 编程是基本一致的,L inux 的 socket 编程的原理和方法, 在 Windows 下依然适用。当然 Winsock有了更多的扩展。  (1)Winsock 的初始化和释放 每个 Winsock应用都必须加载 Winsock Dll 的相应版本。如果调用 Winsock之前没 有加载 Winsock库,这个函数就会返回错误,错误信息是 WSANOTINITIALISED。加 载 Winsock库是通过调用 WSAStartup 函数实现的,这个函数定义为:  int WSAStartup(  WORD wVersionRequested,  LPWSADATA lpWSAData  );  参数 w VersionRequested指定加载的 Winsock 库的版本,高位字节指定副版本,低 位字节指定主版本。可以使用宏 MAKEWORD(X,Y)方便地指定合适的版本。  lpWSAData是一个与加载库版本有关的信息, 在函数调用后系统会填充这个结构, 以获得相应的 Winsock库的信息.WSADATA 结构声明为:  typedef struct WSAData {  WORD  wVersion;  WORD  wHighVersion:  char  szDescription [WSADESCRIPTION_LEN+1];  char  szSystemStatus[WSASYS_STATUS_LEN+1];  unsigned short  iMaxSockets;  unsigned short  iMaxUdpDg;  char FAR   *  lpVendorInfo;  }WSADATA,   *LPWSADATA; 在 Winsock应用程序结束网络程序后,需要释放 Winsock DLL 的资源,释放函 数为:  int WSACleanup (void)  (2) Winsock 的流套接字编程 下图是使用 Winsock流套接字时服务器与客户端的交互过程  (3)Winsock

文档评论(0)

1亿VIP精品文档

相关文档