《网络编程接口概述.pptx》由会员分享,可在线阅读,更多相关《网络编程接口概述.pptx(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、网卡网卡RAM接口控制芯片接口控制芯片差分隔离变压器差分隔离变压器E2PROM,保存,保存MARK地址等配置参数地址等配置参数第1页/共12页2 网络协议与通信模型网络协议与通信模型应用层表示层会话层 传输层网络层数据链路层物理层ISO模型802.3LANIP、ARP、RARP、ICMPTCP、UDP应用程序,程序员的编程平台3 应用程序与传输层的接口应用程序与传输层的接口 为了使程序员能方便地利用协议,为了使程序员能方便地利用协议,Windows提供了各种网络编程提供了各种网络编程接口接口API函数。常用的有:函数。常用的有:Windows Sockets(WinSock)、NetBIOS、
2、WinInt等。等。第2页/共12页第第2节节 WinSock 编程模型编程模型WinSock 是是Windows下,用户编写应用程序时使用的下,用户编写应用程序时使用的API接口函数。接口函数。WinSock 以DLL形式出现,在编程时,由应用程序加载。WinSock提供了一系列的导出函数,用于建立、连接Socket;接收、发送数据等。WinSock有两种版本:u Winsock1.1:Windows 95、WinNT4u Winsock2.2:Windows98/2000/xp 使用使用 WinSock编程,先应启动编程,先应启动WinSock,其函数原型如下:,其函数原型如下:int W
3、SAStartup(WORD wVersionRequested,/要求使用要求使用Winsock的最低版本号的最低版本号 LPWSADATA lpWSAData /指向指向WSADATA结构,以返回结构,以返回 /Winsock 的详细资料的详细资料 );第3页/共12页WinSock启动后,使用如下步骤编程:启动后,使用如下步骤编程:1 建立建立Socket SOCKET socket(int af,/地址家族,通常使用:AF_INET int type,/socket的种类,SOCK_STREAM=TCP协议,SOCK_DGRAM=UDP协议 int protocol /所使用的协议,0
4、 );第4页/共12页2连接Socket,有两种函数,原型如下:建立一个有连接的Socket:int connect(SOCKET s,/指向用Socket函数生成的Socket 描述字 const struct sockaddr FAR*name,/指向服务器地址结构的指针 int namelen /该地址的长度);建立一个非连接的Socket:int bind(SOCKET s,/指向用Socket函数生成的Socket 描述字 const struct sockaddr FAR*addr,/指向Socket地址结构的指针 int namelen /该地址的长度 );第5页/共12页3 使
5、用一个有连接的Socket,发送和接收数据:int recv(SOCKET s,/指向用Socket函数生成的Socket 描述字 char FAR*buf,/数据的缓冲区(数组)的指针 int len,/缓冲区的大小 int flags /调用方式 );int send(SOCKET s,/指向用Socket函数生成的Socket 描述字 const char FAR*buf,/发送的缓冲区(数组)的指针 int len,/缓冲区的大小 int flags /调用方式);第6页/共12页4 使用无连接的Socket接收、发送数据 int recvfrom(SOCKET s,/指向用Socke
6、t函数生成的Socket 描述字 char FAR*buf,/接收数据的缓冲区(数组)的指针 int len,/缓冲区的大小 int flags,/调用方式,0 struct sockaddr FAR*from,/指向发送方SOCKET地址的指针 int FAR*fromlen /发送方SOCKET地址的大小 );int sendto(SOCKET s,/指向用Socket函数生成的Socket 描述字 const char FAR*buf,/发送数据的缓冲区(数组)的指针 int len,/缓冲区的大小 int flags,/调用方式,0 const struct sockaddr FAR*
7、to,/指向接收方SOCKET地址的指针 int token /接收方SOCKET地址的大小 );第7页/共12页第3节 MFC对Socket的支持MFC提供了两个Socket类:Casync Socket 类:封装了Windows Ssocket 的API;Csocket 类:从Casync Socket 类派生,支持同步操作,便于使用线程。第8页/共12页第4节 Socket编程举例本节运用Windows Socket API函数,实现Socket编程。具体为:在局域网上实现两台计算机相互通信。甲机发送数据,乙机收到后予以显示。局域网中不设置专门的服务器,因此,应采用UDP协议,每台计算机既是服务器,也是客户机。采用线程工作。主线程发送数据,再专门创建一个工作线程来接收数据。当工作线程收到数据时,立即发送一个自定义消息WM_USER,通知主线程显示收到的数据。第9页/共12页程序运行界面:第10页/共12页注意:在工程中隐式链接Socket库:wsock32.lib mpr.lib 并在工程中包含对应的头文件:#include 第11页/共12页感谢您的观看!第12页/共12页
限制150内