02 Winsock编程

02 Winsock编程

ID:40229994

大小:1.06 MB

页数:36页

时间:2019-07-27

02 Winsock编程_第1页
02 Winsock编程_第2页
02 Winsock编程_第3页
02 Winsock编程_第4页
02 Winsock编程_第5页
资源描述:

《02 Winsock编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、网络游戏编程二Winsock编程为什么使用TCP/IPTCP/IP软件可以在不同厂商提供的机器环境中运行。这是因为TCP/IP协议软件平台是独立的,不依赖于任何厂商的内部数据表示方法,也不使用仅仅被部分计算机系统所支持的特性。TCP/IP软件可以为TCP信息段从源到目的地之间的传输提供可靠保障。TCP/IP标准不指定应用软件与TCP/IP协议软件之间的接口,该标准仅仅对所需功能提出建议。这样做的优点是保证了在不同操作系统中使用TCP/IP协议软件的灵活性与兼容性为什么使用TCP/IPAPI对编程人员来说,利用TCP/IP协议软件编程过于底层,因为它要求编程人

2、员了解TCP信息段的所有区段,这样的编程过程过于繁重。所以,最好有一套友好的API,可以供编程人员直接调用,以此实现相关功能。目前,被广泛使用的TCP/IP的API主要有:伯克利UNIX套接字接口发布版(BerkeleyUNIXsocketinterfacedistribution(BSD)SystemVUNIX传输层接口(TransportLayerInterface,TLI)Windows套接字接口(WinSock)套接字(Socket)网络中的通信接口被称为“套接字”。套接字的行为类似一个通信端点(endpoint)。TCP/IP的套接字接口首先在Be

3、rkeley的UNIX机中实现,随后被引入到其它平台。在Windows中,套接字接口被称为WindowsSocket,或WinSock,或WindowsSocketAPI。TCP/IP网络通信接口,类似“插座(socket)”WinsockWinSock提供了一个函数库,这些函数根据重要性被分为两类:重要的套接字函数:例如socket(),bind(),accept(),connect()等。其它辅助函数:例如getserverbyname(),htons()等WinSock执行与TCP/IP协议软件的交互功能WinSock与协议WinSock是一个接口,而

4、不是协议本身。WinSock支持TCP/IP,NetBIOS,IPX/SPX,AppleTalk等网络协议某些不同协议族接口间通信相同协议族接口间通信(在很多情况下,服务器端和客户端使用不同的协议族,即使使用相同的API,也无法通信。)套接字分类套接字主要分为三类:流套接字(streamsocket):被TCP协议用于实现面向连接的通信,所以也被称为TCP套接字。数据包套接字(datagramsocket):被UDP协议用于实现无连接的通信,所以也被称为UDP套接字。原始套接字(rawsocket):直接使用IP协议,被用于使用ICMP和OSPF的应用程序。

5、在网络游戏程序的编写过程中,不需要使用。套接字描述符每一个套接字都被标识为一个无符号整数,这个整数被称为套接字描述符。一个进程可以为多个并发通信对话打开多个套接字(例如一个web服务器可以同时为多个浏览器服务时)。Windows为每一个进程保留一个套接字描述符表。进程中的每一个套接字都与一个指针相关联,该指针指向了进程套接字描述符表中的一个数据结构。该数据结构保存了socket会话的相关信息,包括了很多域,当应用程序调用一些WinSock函数时,将填写这些域。字节顺序不同的计算机可能使用不同的方法表示16位或32位的整数。整数在这些机器中的保存顺序被称为主机

6、字节顺序(hostbyteorder)。Intel80x86中表示整数0x060E170A(小端法)Motorola68000中表示整数0x060E170A(大端法)字节顺序TCP/IP指定大端法字节顺序为网络字节顺序(networkbyteorder)。一些WinSock函数的参数必须使用网络字节顺序。所以WinSock提供了一些转换函数,用于在主机字节顺序和网络字节顺序间进行转换:u_shorthtons(u_shorthost_short):u_shortntohs(u_shortnetwork_short):u_longhtonl(u_longhos

7、t_long):u_longntohl(u_longnetwork_long):端点地址通用端点地址:Socket具备协议族无关性,可以兼容多种协议族,并定义了如下通用端点地址:structsockaddr{u_shortsa_family;//地址家族charsa_data[14];//占位空字符};TCP/IP协议中的端点地址:structsockaddr_in{u_shortsin_family;//地址家族u_shortsin_port;//端口号structin_addrsin_addr;//IP地址charsin_zero[8];//占位空符};

8、端点地址可见,TCP/IP的端点地址由三部分组成:T

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

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

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