- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络音频点播软件的设计与开发实验
网络音频点播软件的设计与开发实验
一、实验目的
掌握基于 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)