局域网的语音通系统论文.doc

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

局域网的语音通信系统论文 1.6万字+论文+开题报告+英文翻译+文献综述 ?winsock编程原理 在WINDOWS95/98,WINDOWSNT进行WINSOCK开发使用的编程语言有很多,VC++,JAVA,DELPHI,VB等。其中VC时使用最普遍,和WINSOCK结合最紧密的。并且VC++对原来的WindowsSockets库函数进行了一系列封装,继而产生了CAsynSocket、CSocket、CSocketFile等类,它们封装着有关Socket的各种功能,是编程变得更加简单。但如果你是一个WINSOCK编程的初学者,那么建议你在一开始还是学习WINSOCK最基本的API函数进行编程,这样可以大大加深对WINSOCK的了解,对将来很有好处。 在VC中进行WINSOCK的API编程开发,需要使用到下面三个文件: 1)WINSOCK.H: 这是WINSOCK API的头文件;2) WSOCK32.LIB: WINSOCK API连接库文件。在使用中,一点要把它作为项目的非缺省的连接库包含到项目文件中去;3)WINSOCK.DLL: WINSOCK的动态连接库,位于WINDOWS的安装目录下。 一般在使用中,面向连接协议的SOCKET编程模型应用最为广泛,因为面向连接协议提供了一系列的数据纠错功能,可以保证在网络上传输的数据及时、无误地到达对方。 总的来说,使用SOCKET接口(面向连接或无连接)进行网络通信时,必须按下面简单的四步进行处理:程序必须建立一个SOCKET;程序必须按要求配置此SOCKET。也就是说,程序要么将此SOCKET连接到远方的主机上,要么给此SOCKET指定一个本地协议端口;程序必须按要求通过此SOCKET发送和接收数据;程序必须关闭此SOCKET。 在MFC中MS为套接口提供了相应的类CAsyncSocket和CSocket,CAsyncSocket提供基于异步通信的套接口封装功能,CSocket则是由CAsyncSocket派生,提供更加高层次的功能,例如可以将套接口上发送和接收的数据和一个文件对象(CSocketFile)关联起来,通过读写文件来达到发送和接收数据的目的,此外CSocket提供的通信为同步通信,数据未接收到或是未发送完之前调用不会返回。此外通过MFC类开发者可以不考虑网络字节顺序和忽略掉更多的通信细节。 创建CAsyncSocket对象,可以调用下列函数:A)BOOL CAsyncSocket::Create UINT nSocketPort 0, int nSocketType SOCK_STREAM, long lEvent FD_READ FD_WRITE FD_OOB FD_ACCEPT FD_CONNECT FD_CLOSE, LPCTSTR lpszSocketAddress NULL 通过指明lEvent所包含的标记来确定需要异步处理的事件,对于指明的相关事件的相关函数调用都不需要等待完成后才返回,函数会马上返回然后在完成任务后发送事件通知,并利用重载以下成员函数来处理各种网络事件: 标记 ?事件 ?需要重载的函数 ? FD_READ ?有数据到达时发生 ?void OnReceive int nErrorCode ; ? FD_WRITE ?有数据发送时产生 ?void OnSend int nErrorCode ; ? FD_OOB ?收到外带数据时发生 ?void OnOutOfBandData int nErrorCode ; ? FD_ACCEPT ?作为服务端等待连接成功时发生 ?void OnAccept int nErrorCode ; ? FD_CONNECT ?作为客户端连接成功时发生 ?void OnConnect int nErrorCode ; ? FD_CLOSE ?套接口关闭时发生 ?void OnClose int nErrorCode ; ? 我们看到重载的函数中都有一个参数nErrorCode,为零则表示正常完成,非零则表示错误。通过int CAsyncSocket::GetLastError 可以得到错误值。 下面我们看看套接口类所提供的一些功能,通过这些功能我们可以方便的建立网络连接和发送数据。 BOOL CAsyncSocket::Create UINT nSocketPort 0, int nSocketType SOCK_STREAM, long lEvent FD_READ FD_WRITE FD_OOB FD_ACCEPT FD_CONNECT FD_CLOSE, LPCTSTR lpszSocketAddress NULL ;用于创建一个本地套接

文档评论(0)

qee026 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档