windows网络编程介绍

上传人:第*** 文档编号:61503077 上传时间:2018-12-02 格式:PPT 页数:26 大小:636KB
返回 下载 相关 举报
windows网络编程介绍_第1页
第1页 / 共26页
windows网络编程介绍_第2页
第2页 / 共26页
windows网络编程介绍_第3页
第3页 / 共26页
windows网络编程介绍_第4页
第4页 / 共26页
windows网络编程介绍_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《windows网络编程介绍》由会员分享,可在线阅读,更多相关《windows网络编程介绍(26页珍藏版)》请在金锄头文库上搜索。

1、Windows网络编程介绍,刘兆兵 2009.11.11,目录,Windows通信方式 命名管道 TCP/IP协议栈 WinSock 介绍 Socket基本操作 Socket I/O模型 综述 例一:基于UDP的I/O重叠模型 例二:基于TCP的完成端口模型 小结,Windows通信方式,邮槽(Mailslot) 基于NetBIOS,简单,不可靠,单向,适合广播 命名管道(Named Pipes) 基于NetBIOS,可靠,单向或双向 Socket 基于TCP/UDP,通信方式灵活多样,协议跨平台通用 ,命名管道,命名管道的标识是采用UNC(Universal Naming Conventio

2、n,通用命名规范)格式进行的: serverPipepathname 其中“Pipe”是不可变的,但不区分大小写,命名管道,建一个基本的命名管道服务器应用: CreateNamedPipe(阻塞,非阻塞) ConnectNamedPipe ReadFile/WriteFile DisconnectNamedPipe CloseHandle,命名管道,建一个基本的命名管道客户机应用: WaitNamedPipe CreateFile WriteFile/ReadFile CloseHandle,TCP/IP协议栈,TCP/IP协议栈,XML,TCP/IP协议栈,服务器用户界面,服务器应用逻辑,网

3、络通信模块 (如基于Winsock32),客户端应用逻辑,客户端用户界面,一个典型的C/S架构协议层次:,TCP/UDP,IP,网络层及以下,其他基础模块,可见:服务器及客户端的应用逻辑,其实也可以看作自定义的应用层协议。,其他基础模块,WinSock 介绍,API体系 WinSock初始化和释放函数 Socket创建、关闭函数 Socket状态查询和操作函数 连接和收发相关函数 其它辅助函数 版本 2.2版和1.1版 WinCE只支持1.1版 支持多协议和协议无关性,WinSock 介绍,ws2_32.dll的导出函数: accept bind closesocket connect get

4、peername getsockname getsockopt htonl htons ioctlsocket inet_addr inet_ntoa listen ntohl ntohs recv recvfrom select send sendto setsockopt shutdown socket GetAddrInfoW GetNameInfoW WSApSetPostRoutine FreeAddrInfoW WPUCompleteOverlappedRequest WSAAccept WSAAddressToStringA WSAAddressToStringW WSAClos

5、eEvent WSAConnect WSACreateEvent WSADuplicateSocketA WSADuplicateSocketW WSAEnumNameSpaceProvidersA,WSAEnumNameSpaceProvidersW WSAEnumNetworkEvents WSAEnumProtocolsA WSAEnumProtocolsW WSAEventSelect WSAGetOverlappedResult WSAGetQOSByName WSAGetServiceClassInfoA WSAGetServiceClassInfoW WSAGetServiceC

6、lassNameByClassIdA WSAGetServiceClassNameByClassIdW WSAHtonl WSAHtons gethostbyaddr gethostbyname getprotobyname getprotobynumber getservbyname getservbyport gethostname WSAInstallServiceClassA WSAInstallServiceClassW WSAIoctl WSAJoinLeaf WSALookupServiceBeginA WSALookupServiceBeginW WSALookupServic

7、eEnd WSALookupServiceNextA WSALookupServiceNextW WSANSPIoctl WSANtohl WSANtohs WSAProviderConfigChange WSARecv WSARecvDisconnect WSARecvFrom WSARemoveServiceClass WSAResetEvent WSASend,WSASendDisconnect WSASendTo WSASetEvent WSASetServiceA WSASetServiceW WSASocketA WSASocketW WSAStringToAddressA WSA

8、StringToAddressW WSAWaitForMultipleEvents WSCDeinstallProvider WSCEnableNSProvider WSCEnumProtocols WSCGetProviderPath WSCInstallNameSpace WSCInstallProvider WSCUnInstallNameSpace WSCUpdateProvider WSCWriteNameSpaceOrder WSCWriteProviderOrder freeaddrinfo getaddrinfo getnameinfo WSAAsyncSelect WSAAs

9、yncGetHostByAddr WSAAsyncGetHostByName WSAAsyncGetProtoByNumber WSAAsyncGetProtoByName WSAAsyncGetServByPort WSAAsyncGetServByName WSACancelAsyncRequest WSASetBlockingHook WSAUnhookBlockingHook WSAGetLastError WSASetLastError WSACancelBlockingCall WSAIsBlocking WSAStartup WSACleanup,WinSock 介绍,支持的协议

10、( WSASocket函数的协议相关参数)一:,WinSock 介绍,支持的协议( WSASocket函数的协议相关参数)二:,Socket基本操作,WSAStartup(版本参数) WSACleanup WSAGetLastError,Socket基本操作,TCP客户端/服务器的连接步骤:,Socket基本操作,UDP的准备步骤: socket/WSASocket bind,Socket基本操作,TCP 数据收发: send/WSASend recv/WSARecv UDP数据收发: sendto/WSASendTo recvfrom/WSARecvFrom,Socket基本操作,关闭Soc

11、ket: shutdown(UDP不用) closesocket Socket选项: getsockopt setsockopt(也可用来强制关闭连接),Socket基本操作,IP地址格式转换: inet_addr 机器字节序与网络字节序: 小端序与大端序 htonl() htons(),Socket I/O模型综述,阻塞/非阻塞(锁定/非锁定、同步/异步)通信 ioctlsocket I/O Pending(WSA_IO_PENDING) Windows提供的Socket I/O模型: select(选择,BSD标准的) WSAAsyncSelect(异步选择) WSAEventSelect

12、(事件选择) Overlapped I/O(重叠式I / O) Completion port(完成端口),例一:基于UDP的I/O重叠模型,WSAStartup WSASocket WSA_FLAG_OVERLAPPED标志 setsockopt bind WSARecvFrom/WSASendTo WSAOVERLAPPED参数 WaitForMultipleObjects(Ex) closesocket 意义与TCP有所不同 WSACleanup,例二:基于TCP的完成端口模型,WSAStartup CreateIoCompletionPort WSASocket bind listen

13、 WSAAccept connect(客户端) CreateIoCompletionPort GetQueuedCompletionStatus IoCompletionPort相关操作函数并不在Ws2_32.dll中,而在Kernel32.dll PostQueuedCompletionStatus closesocket WSACleanup,杂谈,Socket I/O模型的选择 客户机 重叠I / O或WSAEventSelect模型 要进行窗口消息的管理,考虑WSAAsyncSelect模型 服务器 重叠I / O模型 为大量I / O请求提供服务,考虑使用完成端口模型 客户机/服务器也可以考虑用一样的网络模块 I/O重叠与完成端口不仅用于WinSock,杂谈,Windows网络程序设计杂谈 实际网络环境的复杂性,容错 面向对象 线程调度 回调与消息 缓存,推荐,Windows网络编程技术 Anthony Jones著,机械工业出版社 MSDN,谢谢!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号