- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Windows Socket API编程
第22章 Windows Socket API编程 随着Windows操作系统的普及,Microsoft公司联合其他计算机软硬件厂商共同开发了Windows下的网络编程接口——Windows Socket API。Windows Sockets规范定义了一个在TCPP/IP网络上可作为标准使用的应用编程接口,由于它支持多种协议体制下的网络通信,支持多种编程语言,而且在许多操作系统上具有广泛的适用性,所以为网络开发人员提供了方便。本章将介绍Visual C++环境下怎样使用Windows Socket API进行网络编程。 22.1 Windows Sockets概述 Windows Sockets规范的套接口模型现在已是TCP/IP网络标准。作为一个开放的、支持多种协议的网络编程接口在Windows下得到广泛的应用,已成为Windows网络编程事实上的标准。使用这种规范,用户可以方便地实现异构网络操作系统之间的通信。 22.1.1 Windows Sockets的发展 上世纪80年代初期,美国政府的高级研究工程机构(Advanced Research Projects Agency,ARPA)给加利福尼亚大学Berkeley分校提供了资金,让他们在UNIX操作系统下实现TCP/IP协议。作为项目的一部分,研究人员为TCP/IP网络开发了一个应用程序接口,这个应用程序接口称为Socket接口。现在,Socket接口已经成为TCP/IP网络最为通用的API,已经成为事实上的标准。 22.1.2 Windows Sockets的类型 在Windows网络编程中,套接字接口主要有三种类型:流式套接字、数据报套接字以及原始套接字。 1.流式套接字(stream socket) 2.数据报套接字(datagram socket) 3.原始套接字(raw socket) 22.1.3 Windows Sockets扩展 Windows Sockets提供了许多在标准的Berkeley Sockets之外的扩展函数。使用这些扩展的函数应用程序能更好地处理基于消息的异步发送的网络事件。主要有以下几个方面。 1.异步选择机制 2.异步请求函数 3.阻塞处理方法 4.出错处理 5.启动与终止 22.1.4 套接字编程模型 在网络编程中最常用的方案便是客户机/服务器模型。在模型中客户应用程序向服务器程序请求服务,一个服务程序通常在一个固定的地址监听对服务的请求,直到一个客户对这个服务的地址提出了连接请求。在这个时刻,服务程对客户的请求作出适当的反应,为客户提供服务。 22.2 Windows Socket API主要函数 Windows Sockets提供了许多套接字函数,用户利用这些函数可以很容易地进行编程。本节将对常用的一些套接字函数,及利用这些函数进行网络编程的步骤进行详细讲解。 22.2.1 初始化WinSock 每个WinSock应用都必须加载WinSock DLL的相应版本,加载WinSock库是通过调用WSAStartup()函数实现的。WSAStartup()对进程初始化WS2_32.DLL的使用。其原型如下: int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData ); 22.2.2 创建套接字 socket()函数的功能是创建套接字。应用程序在使用套接字前,首先必须创建一个套接字,应用程序调用socket()函数来创建套接字。该函数的原型如下: SOCKET socket(int af, int type, int protocol); 22.2.3 绑定地址 在定义一个套接字后,需要为其指定本机地址、协议和端口号。bind()函数用于将套接字绑定到一个已知的地址上。该函数的原型如下: int bind(SOCKET s, const struct sockaddr FAR * name, int namelen); 22.2.4 将套接字设置为监听状态 当服务器端的Socket对象绑定之后,必须建立一个监听的队列来接收客户端的连接请求。调用listen()函数使服务器端的Socket进入监听状态,并设定可以建立的最大连接数,目前连接数最大值限制为5,最小值为1。该函数的原型如下: int listen( SOCKET s, int backlog ); 22.2.5 发送连接请求 connect()函数用于发送一个连接请求。该函数的原型如下: int connect (SOCKET s,const struct sockaddr FAR* name, int namelen); 22.2.6 接受连接请求 当客户端提出连接请求时
您可能关注的文档
- 高中数学1.2.1平面的基本性质精品课件苏教版必修.ppt
- BCB编程过程中的各种问题集锦.doc
- 数学: 2.2.1《直线与平面平行的判定》 课件(新人教必修2)董洪安.ppt
- 2013届高考理科数学总复习(第1轮)全国版课件:8.3抛物线(第1课时).ppt
- 简述TcpIP协议簇运作过程.doc
- 平面的基本性质与推论讲课.ppt
- 2016复习平面;直线的关系.ppt
- 加载虚拟IP发送ARP包.docx
- WINSOCK API 网络编程入门.doc
- java-socket多线程.doc
- 2024汽车技师职业鉴定常考点试卷及参考答案详解(培优).docx
- 2025汽车技师职业鉴定高分题库及参考答案详解【最新】.docx
- 2025年湖北省黄冈市选调生考试(行政职业能力测验)综合能力题库参考答案.docx
- 2025年湖北省黄冈市行政职业能力测验模拟试题汇编.docx
- 2025年湖北省黄冈市行政职业能力测验模拟试题及答案1套.docx
- 2025年湖北省黄冈市选调生考试(公共基础知识)综合能力测试题及答案一套.docx
- 2025年湖北省黄冈市选调生考试(公共基础知识)综合能力测试题完整.docx
- 2024汽车技师职业鉴定常考点试卷及参考答案详解【满分必刷】.docx
- 2024汽车技师职业鉴定常考点试卷【名师系列】附答案详解.docx
- 2025汽车技师职业鉴定高频难、易错点题【历年真题】附答案详解.docx
文档评论(0)