网络程序设计实验教程.pdf

网络程序设计实验教程.pdf

ID:52924029

大小:476.45 KB

页数:41页

时间:2020-03-31

网络程序设计实验教程.pdf_第1页
网络程序设计实验教程.pdf_第2页
网络程序设计实验教程.pdf_第3页
网络程序设计实验教程.pdf_第4页
网络程序设计实验教程.pdf_第5页
资源描述:

《网络程序设计实验教程.pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、网络程序设计实验教程一面向连接的套接字程序设计1.实验目的(1)理解套接字的概念。(2)理解面向连接套接字的工作过程。(3)掌握WindowsSockets基本规范。(4)掌握使用Winsock进行简单面向连接网络程序设计的方法。2.实验基础1)WindowsSOCKET规范概述WindowsSockets规范以U.C.Berkeley大学BSDUNIX中流行的Socket接口为范例定义了一套MicosoftWindows下网络编程接口,它不仅包含了人们所熟悉的BerkeleySocket风格的库函数;也包含了一组

2、针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。WindowsSockets规范本意在于提供给应用程序开发者一套简单的API,并让各个网络软件供应商共同遵守。此外,在一个特定版本Windows的基础上,WindowsSockets也定义了一个二进制接口(ABI),以此来保证应用WindowsSocketsAPI的应用程序能够在任何网络软件供应商的符合WindowsSockets协议的实现上工作。因此这份规范定义了应用程序开发者能够使用,并且网络软件供应商能够实现的一套库函数

3、调用和相关语义。遵守这套WindowsSockets规范的网络软件,称之为WindowsSockets兼容的。任何能够与WindowsSockets兼容实现协同工作的应用程序就被认为是具有WindowsSockets接口,称这种应用程序为WindowsSockets应用程序。WindowsSockets规范定义并记录了如何使用API与Internet协议族(IPS,通常我们指的是TCP/IP)连接,尤其要指出的是所有的WindowsSockets实现都支持流式套接字和数据报式套接字.应用程序调用WindowsSoc

4、kets的API实现相互之间的通讯。WindowsSockets又利用下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。它们之间的关系如下图:应用程序1应用程序N网络编程截面,如WINDOWSSOCKET网络通信协议服务截面,如TCP/IP操作系统,如WINDOWS物理通信介质-1-网络程序设计实验教程2)面向连接的套接字编程原理3)WINDOWS环境下面向连接的SOCKET基本函数(1)WSAStartup函数intWSAStartup(WORDwVersionRequested,LPWSADATAlpWS

5、AData);使用Socket的程序在使用Socket之前必须调用WSAStartup函数。该函数的第一个参数指明程序请求使用的Socket版本,其中高位字节指明副版本、低位字节指明主版本;操作系统利用第二个参数返回请求的Socket的版本信息。当一个应用程序调用WSAStartup函数时,操作系统根据请求的Socket版本来搜索相应的Socket库,然后绑定找到的Socket库到该应用程序中。以后应用程序就可以调用所请求的Socket库中的其它Socket函数了。该函数执行成功后返回0。(2)WSACleanup

6、函数intWSACleanup(void);应用程序在完成对请求的Socket库的使用后,要调用WSACleanup函数来解除与Socket库的绑定并且释放Socket库所占用的系统资源。(3)socket函数SOCKETsocket(intaf,inttype,intprotocol);应用程序调用socket函数来创建一个能够进行网络通信的套接字。第一个参数指定应用程序使用的通信协议的协议族,对于TCP/IP协议族,该参数置PF_INET;第二个参数指定要创建的套接字类型,流套接字类型为SOCK_STREAM、

7、数据报套接字为SOCK_DGRAM;第三个参数指定应用程序所使用的通信协议。该函数如果调用成功就返回新创建的套接字的描述符,如果失败就返回INVALID_SOCKET。套接字描述符是一个整数类型的值。每个进程的进程空间里都有一个套接字描述符表,该表中存放着套接字描述符和套接字数据结构的对应关系。该表中有一个字段存放新创建的套接字的描述符,另一个字段存放套接字数据结构的地址,因此根据套接字描述符就可以找到其对应的套接字数据结构。每个进程在自己的进程空间里都有一个套接字描述符表但是套接字数据结构都是在操作系统的内核缓冲

8、里。下面是一个创建流套接字的例子:structprotoent*ppe;-2-网络程序设计实验教程ppe=getprotobyname("tcp");SOCKETListenSocket=socket(PF_INET,SOCK_STREAM,ppe->p_proto);(4)closesocket函数intclosesocket(SOCKETs);close

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

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

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