- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Winsocket编程基础.doc
一、网络编程基础
1.1计算机网络概述
计算机网络把分布在不同地点且具有独立功能的多个计算机系统通过通信设备和线路连接起来,在功能完善的软件和协议的管理下实现网络中资源共享
1.2、网络参考模型
为什么要对网络进行分层设计?在计算机通信过程中需要通信协议,但因传输介质的不同、计算机本身的差异以及数据格式的不同等因素,致使网络通信相当复杂,为了降低复杂性,OSI提出了协议分层的参考模型,即OSI七层互联参考模型。因为OSI的网络模型标准比较严格,另外推出的时间也相对较晚,所以目前还没有完全按照OSI模型实现的网络。TCP/IP是实际应用最广泛的一种网络模型在这个模型中,不只是划分了功能层,还有具体的实现技术,即协议。TCP和IP就是这个模型中最重要的两个层次的代表协议。
虽然TCP/IP不是完全符合OSI的参考模型,但在层次上也存在着对应关系,如下图:
1.2.2、数据流向
在网络的层次模型中,每一层与相邻层之间都留有接口,较低层通过接口为上一层提供服务,中间层就像个翻译一样,如下图为经典的中德教师的对话过程:
在TCP/IP网络模型中,数据在从应用层向网络接口层(链路层)传递的过程中,每经过一层都要加入该层的相应的协议内容,这样数据在链路层形成了完整的数据包,该数据包到达接收方后,数据包从链路层到应用层进行逐层解析,在接收方应用层解析得到的数据就是发送方在应用层发送的数据,数据进行逐层封装和解析的过程如下图:
1.2.3、IP分类
IP地址在网络层中定义,长度为32个二进制位,分为4段,每段8位IP地址有两部分组成,一部分为网络,另一部分为主机地址。IP地址分为A、B、C、D、E5类 A 类: |0| + 网络号7位+主机号24位 ------55
B 类: |1 0|+网络号14位+主机号16位 ------55
C 类: |1 1 0|+网络号21位+主机号8位 ------55
D 类: |1 1 1 0|+网络号28位多播组号 ------55
E 类: |1 1 1 1 0|+27位留待后用
在使用IP地址进行通信时,可分为单播、组播和广播三种通信方式。单播即网络节点之间进行点到点的通信;组播,又称多播,常用于视频会议,由一个节点向指定的一组节点逐个发送数据,多播使用D类IP地址。广播类似组播,只是它不区分子网中的节点,也就是对所有节点发送数据,因此占用整个网络带宽,广播使用固定的IP” 55””。
1.3、软件系统结构
C/S(Client/Server)结构,即大家熟知的客户机和服务器结构B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,主要事务逻辑在服务器端(Server)实现用户通过WWW浏览器,极少部分事务逻辑在前端(Browser)实现,
二、SOCKET编程
2.1、SOCKET概述
SOCKET是在TCP/IP协议下进行网络编程的接口,在编写网络软件时,用户不用关系底层协议是如何实现的,SOCKET提供了一些API使网络编程变得相对简单。SOCKET是由伯克利大学分校设计,最早主要用于在UNIX进行网络开发,微软在此基础上对其进行扩展,称其为WinSocket,扩展的socket API一般都以WSA开头,在windows上进行网络编程,基本的socket函数和扩展的socket函数都可以使用。
2.2、同步(阻塞)/异步(非阻塞)
同步是指计算机的IO操作不能同时进行,也就是计算机系统内核在进行IO操作时,线程处于等待状态(阻塞),在内核完成IO操作后,等待的线程才继续执行。异步是相对于同步而言,线程在向系统内核提出IO操作请求后继续执行,线程通过内核定义的信号状态判断IO操作是否完成。同步IO操作相对简单,但异步IO会使整个软件有更高的性能,但开发难度较大。
2.3、基本开发步骤
TCP
UDP
三、网络IO模型
Winsock提供了五种 IO模型:选择(Select)、异步选择(WSAAsyncSelect)、事件选择(WSAEventSelect)、重叠I/O(Overlapped I/O)和完成端口(Completion Port)共五种I/O模型。
异步选择模型
在这个模型中,应用程序可以在socket上接收以windows消息为基础的网络事件通知,根据通知内容进行执行相应的动作,如果你在开发一个界面应用程序,希望处理网络事件像处理一般的消息一样,选择这个模型就非常合适。这个模型中的关键函数为WSAAsyncSelect,原型如下:
int WSAAsyncSel
您可能关注的文档
最近下载
- 2024年智慧树《中华国学》考试题库(含答案).pdf VIP
- 2023年江苏省泰州市中考地理试卷真题(附答案)+2022年地理试卷及答案.docx
- 二年级下册 看图写话 助人为乐.ppt
- GB-50618-2011房屋建筑和市政基础设施工程质量检测技术管理规范.pdf VIP
- 李澄-急性原发性肠脂垂炎CT诊断只是课件.ppt
- 考低压电工证模拟试题(练习题附答案).doc VIP
- 2025高中英语外刊时文阅读 《黑神话:悟空》英文介绍课件.pptx
- DB34T 1589-2012 建筑节能门窗应用技术规程.pdf VIP
- 第四课 共同开发建设祖国 《中华民族大团结》七年级全一册(初中).pptx VIP
- 新审计法党课培训.ppt VIP
文档评论(0)