欢迎来到天天文库
浏览记录
ID:41037496
大小:472.00 KB
页数:22页
时间:2019-08-14
《孙鑫第十四课网络编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、欢迎dianxin07219880我的:收件箱资源博客空间设置
2、帮助
3、退出·CSDN首页·资讯·论坛·博客·下载·搜索·更多oCTO俱乐部o学生大本营o培训充电o移动开发o软件研发o云计算o程序员oITeyeoTUP王定桥的专栏Maybe,Ican'tgettheansweratthemoment,butIbelieveIwillfinditfinally!·目录视图·摘要视图·订阅精创之作《雷神的微软平台安全宝典》诚邀译者 移动业界领袖会议·上海·6.20第四届云计算大会门票抢购:史上最低价,每日限5
4、张! 【分享季1】:网友推荐130个经典资源,分享再赠分!Windows程序设计__孙鑫C++Lesson14《网络编程》分类:WindowsVC++程序设计2012-02-0121:4983人阅读评论(0)收藏举报Windows程序设计__孙鑫C++Lesson14《网络编程》本节要点:1.网络协议参考模型简介2.套接字简介3.网络字节顺序4.客户机/服务器模式简介5.WindowsSockets的实现6.Windows网络编程函数准备7.基于TCP的套接字编程8.基于UDP的套接字编程//****************************************
5、*********************************************1.网络协议参考模型简介OSI七层参考模型TCP/IP的四层模型 这部分内容涉及理论知识比较丰富,请参见谢希仁《计算机网络》.这里仅把帮助理解的图列在下面:2.套接字简介套接字存在于通信区域中。通信区域也叫地址族,它是一个抽象的概念,主要用于将通过套接字通信的进程的公有特性综合结合在一起。套接字通常只与同一区域的套接字交换数据(也有可能跨区域通信,但这只在执行了某种转换进程后才能实现)。WindowsSockets只支持一个通信区域:网际域(AF_INET),这个域被使用网际协议簇通信的进程使用
6、。3.网络字节顺序不同的计算机存放多字节值得顺序不同,有的机器在起始地址存放低位字节(低位先存),有的机器在起始地址存放高位字节(高位先存)。基于Intel的cpu,即我们常用的pc机采用的是低位先存。为保证数据的正确性,在网络协议中需要使用指定的网络字节顺序。TCP/IP协议使用16位整数和32位整数的高位先存格式。4.客户机/服务器模式简介 详细内容请参见谢希仁《计算机网络》.这里介绍如下图所示:5.WindowsSockets的实现(1)WindowsSockets是从伯克利套接字扩展而来,以动态链接库的形式提供给我们使用。WindowsSockets扩充主要是提供了一些异步函
7、数,并增加了符合Windows消息驱动特性的网络事件异步选择机制。(2)套接字的类型流式套接字(SOCK_STREAM)提供面向连接、可靠的数据传输服务,数据无差错、无重复的发送,且按发送顺序接收,基于TCP协议实现的。数据报式套接字(SOCK_DGRAM)提供无连接服务。数据包以独立包形式发送,不提供无错保证,数据可能丢失或者重复,并且接收顺序混乱,基于UDP协议实现的。原始套接字(SOCK_RAM)这里不做介绍。6.Windows网络编程函数准备(1)intWSAStartup( WORDwVersionRequested,//WindowsSockets版本信息高字节指定最低版
8、本, //低位字节表示主版本 LPWSADATAlpWSAData //);该函数加载了Ws2_32.dll动态链接库,每次成功调用后应用程序必须在使用完后调用WSACleanup释放Ws2_32.dll的资源,终止其使用.(2)SOCKETsocket( intaf, //指定地址族对于TCP/IP协议的套接字 inttype, //指定Socket类型 intprotocol //是与特定的地址家族相关的协议指定为0那么他就会根据 地址格式和套接字类别,自动为你选择一个合适的协议);创建
9、一个和指定服务提供者绑定的套接字。(3)intbind( SOCKETs, //待绑定的套接字 conststructsockaddrFAR*name,//指定了该套接字的本地地址信息指向sockaddr指针 intnamelen //指定第二个参数的长度);用来绑定一个本地地址和套接字。structsockaddr{ u_short sa_family; char
此文档下载收益归作者所有