欢迎来到天天文库
浏览记录
ID:14395447
大小:630.50 KB
页数:34页
时间:2018-07-28
《网络编程实验指导书》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《网络编程》实验指导书梁峰微机综合实验室随着计算机和Internet网络的发展,原先在测量、控制、消费等领域不同设备/仪器之间,大多采用RS232/485或现场总线组建网络等进行数据传输的情况正在改变,特别在要求数据传输速度和可靠性方面的应用产品,转向基于Internet网络的远程传输和应用。网络编程大多基于TCP/IP协议,实现方法有多种,复杂但编程适应性广的方法是调用底层的Winsock API函数或MFC基本类等;简单方便的方法可以采用如Winsock控件。在网络编程中最常用的方案便是客户机/服务器模型,客户应用程序向服务器程序请求服务;另外一种模式是点对点通信,通信双方对等,既有
2、客户机功能又有服务器的功能,编程简单,适合传输数据流少的场合,而且采用简单的UDP协议,易于用微控制器等嵌入式系统实现,在测量控制方面有许多应用。本实验指导书将介绍一些网络编程和Winsock控件知识,用VC++实现网络间的通信。本实验共有16学时,分为8次实验进行。实验一网络编程相关知识的介绍及学习一.实验目的:了解TCP/IP体系结构,Winsock编程套接字原理,WindowsSockets网络程序设计核心原理二.实验任务:学习网络编程的原理,熟悉VC++6.0,MFC类的生成向导等工具的使用三.实验内容1.了解TCP/IP体系结构TCP/IP协议的核心部分是传输层协议(TCP、U
3、DP),网络层协议(IP)和物理接口层,这三层通常是在操作系统内核中实现。因此用户一般不涉及。编程时,编程界面有两种形式:(1)是由内核心直接提供的系统调用;(2)使用以库函数方式提供的各种函数。前者为核内实现,后者为核外实现。用户服务要通过核外的应用程序才能实现,所以要使用套接字(socket)来实现。 下图是TCP/IP协议核心与应用程序关系图。 1.套接字Sockets及Winsock编程原理WindowsSockets接口是TCP/IP网络最为通用API(应用程序接口),已成为Windows网络编程的事实上的标准。它以Unix中流行的Socket接口为范例定义了一套Micros
4、oftWindows下网络编程接口函数库。它不仅包含了人们所熟悉的BerkeleySocket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。SOCKET实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有SOCKET接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个SOCKET接口来实现。在应用开发中就像使用文件句柄一样,可以对SOCKET句柄进行读,写操作。VC++对原来的WindowsSockets库函数进行了一系列封装,继而产生了CAsynSocket、CSocket、CSocketFile
5、等类,它们封装着有关Socket的各种功能。在VC中进行WINSOCK的API编程开发,需要使用到下面三个文件:WINSOCK.H:这是WINSOCKAPI的头文件。WSOCK32.LIB:WINSOCKAPI连接库文件。在使用中,一点要把它作为项目的非缺省的连接库包含到项目文件中去。WINSOCK.DLL:WINSOCK的动态连接库。总的来说,使用SOCKET接口(面向连接或无连接)进行网络通信时,必须按下面简单的四步进行处理:(1)程序必须建立一个SOCKET。(2)程序必须按要求配置此SOCKET。也就是说,程序要么将此SOCKET连接到远方的主机上,要么给此SOCKET指定一个本
6、地协议端口。(3)程序必须按要求通过此SOCKET发送和接收数据。(4)程序必须关闭此SOCKET。3.WINSOCKAPI主要函数简介(1)WSAStartup():连结应用程序与WindowsSocketsDLL的第一个函数。说明:此函数是应用程序调用WindowsSocketsDLL函数中的第一个,也唯有此函数呼叫成功後,才可以再调用其他WindowsSocketsDLL的函数。(2)WSACleanup():结束WindowsSocketsDLL的使用。说明:当应用程序不再需要使用WindowsSocketsDLL时,须调用此函数来注销使用,以便释放其占用的资源。(3)socke
7、t():建立Socket。说明:此函数用来建立一Socket描述字,并为此Socket建立其所使用的资源。(4)closesocket():关闭某一Socket。说明:此一函数是用来关闭某一Socket。(5)bind():将一本地地址与一个SOCKET描述字连接在一起。说明:此函数在服务程序上使用,是调用监听函数listen()必须要调用的函数。(6)listen():设定Socket为监听状态,准备被连接。说明:此函数在服务程序
此文档下载收益归作者所有