winsock网络编程

winsock网络编程

ID:22641670

大小:3.81 MB

页数:11页

时间:2018-10-30

winsock网络编程_第1页
winsock网络编程_第2页
winsock网络编程_第3页
winsock网络编程_第4页
winsock网络编程_第5页
资源描述:

《winsock网络编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Winsock网络编程一、相关概念l网络协议TCP/IP(传输控制协议/网际协议)是业界标准的协议组。它是基于四层参考模型,属于TCP/IP协议组的所有协议都位于该模型的上面三层。TCP/IP模型的每一层对应于国际标准化组织(ISO)提议的七层“开放系统互联(OSI)”参考模型的一层或者多层。lTCP/IP协议描述SOAP层描述协议应用层定义了TCP/IP应用协议以及主机程序与要使用网络的传输层服务之间的接口HTTP,Telnet,FTP,TFTP,SNMP,DNS,SMTP等传输层提供主机之间的通

2、讯会话管理,定义传输数据时的服务级别以及连接状态TCP,UDP,RTP网络层将数据装入IP数据包,包括用于在主机间以及经过网络转发数据包时所用的源和目标地址信息。实现IP数据包的路由IP,ICMP,ARP,RARP网络接口层指定如何通过网络物理地发送数据,包括直接与网络媒体直接接触的硬件设备如何将比特流转换为电信号以太网,帧中继,令牌环,ATMlTCP/IP核心协议1、地址解析协议(ARP):实现IP地址到物理地址的转换;2、网际协议(IP):是无连接的、不可靠的数据报协议,主要负责主机之间的寻址和

3、选择数据包的路由;3、网际消息协议(ICMP):通过ICMP,使用IP通信的主机和路由器可以报告错误并交换受限控制和状态信息;4、用户数据报协议(UDP):在主机之间提供轻便、快捷、不可靠地传输数据;5、传输控制协议(TCP):提供可靠的、面向连接的数据报传递服务。lUDP/TCP比较UDPTCP无连接的服务:在主机间不建立会话面向连接的服务:在主机间建立会话UDP不能确保或承认数据传递或序列化数据TCP通过确认和按照顺序传递数据来确保数据的传递使用UDP的程序负责提供数据传递的可靠性TCP确保数据

4、的可靠传输UDP非常快,具有低开销要求,支持点对点或者一点对多点的通信TCP比较慢,具有更高的开销要求,只支持点对点通信。lWindows网络编程的三种模式:1、阻塞套接字模式2、异步套接字模式(基于消息的非阻塞套接字模式)3、MFC异步套接字模式二、使用阻塞套接字模式进行Windows网络编程1、WindowsSockets通信程序开发的基本步骤:见《TCP_UDP网络编程步骤.xls》2、相关函数说明lWSAStartup:intWSAStartup(WORDwVersionRequested,

5、LPWSADATAlpWSAData);wVersionRequested:用于指定准备加载的Winsock库的版本。高位字节指定所需要的Winsock库的副版本,而低位字节则是主版本。可用MAKEWORD(x,y)(其中,x是高位字节,y是低位字节)方便地获得wVersionRequested的正确值。lpWSAData:是指向WSADATA结构的指针,WSAStartup用其加载的库版本有关的信息填在这个结构中。WSADATA结构定义如下:typedefstructWSAData{WORDwVe

6、rsion;WORDwHighVersion;charszDescription[WSADESCRIPTION_LEN+1];charszSystemStatus[WSASYS_STATUS_LEN+1];unsignedshortiMaxSockets;unsignedshortiMaxUdpDg;charFAR*lpVendorInfo;}WSADATA,*LPWSADATA;WSAStartup把第一个字段wVersion设成打算使用的Winsock版本。wHighVersion参数容纳的是现

7、有的Winsock库的最高版本。记住,这两个字段中,高位字节代表的是Winsock副版本,而低位字节代表的则是Winsock主版本。szDescription和szSystemStatus这两个字段由特定的Winsock实施方案设定,事实上没有用。不要使用下面这两个字段:iMaxSockets和iMaxUdpDg,它们是假定同时最多可打开多少套接字和数据报的最大长度。然而,要知道数据报的最大长度应该通过WSAEnumProtocols来查询协议信息。同时最多可打开套接字的数目不是固定的,很大程度上和

8、可用物理内存的多少有关。最后,lpVendorInfo字段是为Winsock实施方案有关的指定厂商信息预留的。任何一个Win32平台上都没有使用这个字段。如果WinSock.dll或底层网络子系统没有被正确初始化或没有被找到,WSAStartup将返回WSASYSNOTREADY。此外这个函数允许你的应用程序协商使用某种版本的WinSock规范,如果请求的版本等于或高于DLL所支持的最低版本,WSAData的wVersion成员中将包含你的应用程序应该使用的版本,它是

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

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

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