WindowsSockets基础

WindowsSockets基础

ID:41102413

大小:292.51 KB

页数:44页

时间:2019-08-16

WindowsSockets基础_第1页
WindowsSockets基础_第2页
WindowsSockets基础_第3页
WindowsSockets基础_第4页
WindowsSockets基础_第5页
资源描述:

《WindowsSockets基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章WindowsSockets基础南昌大学何俊本章内容1WindowsSockets概念2编程应注意的协议特征及IP定址概念3基本TCP套接字编程及示例程序(重点)4基本UDP套接字编程及示例程序(重点)5套接字选项3.1WindowsSockets一.什么是WindowsSocketsWindowsSockets是MicrosoftWindows的网络程序设计接口,它是从BerkeleySockets扩展而来的,以动态链接库的形式提供给我们使用。WindowsSockets在继承了BerkeleySoc

2、kets主要特征的基础上,又对它进行了重要扩充。这些扩充主要是提供了一些异步函数,并增加了符合Windows消息驱动特性的网络事件异步选择机制。WindowsSockets1.1和BerkeleySockets都是基于TCP/IP协议的;WindowsSockets2从WindowsSockets1.1发展而来,与协议无关并向下兼容,可以使用任何底层传输协议提供的通信能力,来为上层应用程序完成网络数据通讯,而不关心底层网络链路的通讯情况,真正实现了底层网络通讯对应用程序的透明。1)是网络编程接口2)支持多种协

3、议3)可利用消息驱动机制开发程序二.应用程序与WindowsSockets的关系WindowsSockets应用程序AWindowsSockets应用程序BWindowsSockets网络通信协议(TCP/IP)Windows操作系统物理通信介质三.套接字1.概念:1)是应用层到传输层的接口;2)一个套接字就是通信双方的一个端点;3)类似句柄,它包括一个TCP连接中双方的IP地址和连接状态;2.套接字种类:1)流套接字提供双向有序、无重复、无记录边界的数据流服务2)数据报套接字也支持双向数据流,但不保证数据是

4、可靠的、有序的、无重复的3.套接字类型声明方式typedefunsignedintu_int;typedefu_intSOCKET4.判断套接字是否创建成功的方法SOCKETs=socket(….);if(INVALID_SOCKET==s){//失败}3.2编程应注意的协议特征及IP定址概念1.按连接方式网络服务分2种1)面向连接:可靠完整、保证数据顺序、费时2)面向无连接:实时、不可靠、不保证数据顺序2.从容关闭(大多数面向连接支持)1)如果面向连接协议支持,则在关闭过程中,一方即使关闭连接,另一方仍可读

5、取网络堆栈中的数据;否则只要一方关闭就会中断连接并丢失数据;注:对TCP协议,只有双方都关闭,连接才完全中断2)关闭套接字连接与关闭套接字的不同#关闭连接:双方要交换协议消息,按顺序关闭。例如:shutdown(),WSASendDisconnect()#关闭套接字:指关闭套接字句柄,释放占用资源。例如:closesocket()。(它隐含了shuntdown())3)Sockets定义了两种关闭方式A.从容关闭:把等待发送的数据发送出去,才关闭;B.”硬“关闭:没有发送的数据丢弃。4)从容关闭的方法(2种)

6、A.设置套接字选项来控制closesocket()B.我们可以采用以下方法客户端/服务器执行从容关闭的过程#1、以SD_SEND为参数调用shutdown(),关闭连接。表明客户端不再发送数据(但仍可接受数据)#2、服务器收到FD_CLOSE网络事件,得知客户端正在从容关闭;此时,数据都已经被服务器接收。#3、服务器发送数据#4、服务器以SD_SEND为参数调用shutdown()。通知客户端不要发数据了,再执行closesocket()。#5、客户端收到FD_READ网络事件后,开始接收数据,当然最后会收到

7、FD_CLOSE网络事件。#6、客户端调用closesocket()关闭套接字。ClientServer1.Shutdown()2.FD_CLOSE3.发送数据4.shutdown()5.FD_READ4’.closesocket()5’.FD_CLOSE6.closesocket()(5)路由选择1)若协议可路由,则不管什么网络硬件,该协议会把数据包定向到路由器,由路由器决定最佳转发方式;2)若协议不可路由,路由器将数据丢弃。(6)广播数据1)定义:某主机发出数据,局域网内的所有主机都能收到该数据。2)特点

8、:适用于无连接的协议。一般多数主机将这个数据丢弃。IP定址1、IP协议定址方案WinSock使用AF_INET地址家族为IP通信定址。无论客户端发送数据,或者服务器端监听,都需要服务器的IP地址与端口号。SOCKADDR_IN结构被用来指定IP地址和端口号structsockaddr_in{shortsin_family;//地址家族,对于TCP/IP,只能为AF_INETunsignedshort

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。