网络编程考试复习.doc_第1页
网络编程考试复习.doc_第2页
网络编程考试复习.doc_第3页
网络编程考试复习.doc_第4页
网络编程考试复习.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、填空题(共24分)(1) 面向对象编程的特征3封装性、继承性、多态性(2) VC(两大方向、两大工具)工具一【应用程序向导(AppWizard):可以生成应用程序骨架文件(代码和资源等)】;工具二【类向导(ClassWizard):将代码添加到骨架文件】;方向一【基于Windows API的C编程方式,特点:代码效率高,但开发难度和工作量也很高】;方向二【基于MFC的C+编程方式,代码运行效率相对较低,但开发难度小, 开发工作量小,源代码效率高。(主流)】。(3) 套接字(地址的绑定、类型、初始化、创建)类型:流式套接字(SOCK_STREAM);数据报式套接字(SOCK_DGRAM);原始套接字(SOCK_RAW)以创建TCP服务客户端为例:创建套接字:利用socket()函数创建一个套接字,同时定义一个SOCKET sockClient描述符,用来接收socket()函数的返回值【SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);】(服务端改成sockSrv)初始化:定义一个SOCKADDR_IN类型的结构体变量,并进行初始化 SOCKADDR_IN addrCli; addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);addrCli.sin_addr.S_un.S_addr=inet_addr(127.0.0.1); addrCli.sin_family=AF_INET; addrCli.sin_port=htons(6000);(创建服务端改成addrSrv,没有第三行)绑定:创建客户端不需要套接字绑定; 创建服务端利用bind()函数将该服务器和套接字绑定【bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR);】(4) WinsockI/O工作模式阻塞模式、非阻塞模式(5) 常用头文件和动态库文件#include #include Ws2_32.lib(6) 控件(编辑框、命令按钮、单选框、复选框、静态文本、组框、IP地址控件)、类、连接变量、消息、常用处理函数(7) API函数(8) UDP和TCP数据发送和数据接收函数TCP: recv()、send() UDP: sendto() 、recvfrom()二、单项选择题(共30分)(1) MFC类的特点、继承图表、根基类、常用类(2) UDP服务中用到的函数 WSAStartup()函数加载套接字库和版本协商;socket()函数创建一个套接字;bind()函数将该服务器和套接字绑定。connect()函数连接服务器,不需要与套接字绑定。sendto()函数发送数据到服务端,recvfrom()接收数据。closesocket(sockClient)来关闭套接字和WSACleanup()结束套接字库的使用(3) TCP服务中用到的函数(加上UDP下划线的)listen()函数设置服务器的监听状态。accept()函数接受客户端请求,send()函数发送数据到客户端,利用recv()函数接收客户端数据。(4) 套接字的初始化和终止 利用closesocket()来关闭套接字(5) 控件和类的关联三、简答题(共16分)(1) 套接字概念、套接字编程特点网络编程接口; 1套接字存在于通信域中,套接字通常只和同一域中的套接字交换数据;如需越域界,就要执行某种解释程序;2套接字有3种类型,套接字都有它确定的类型,只有相同类型套接字才能相互通信;3每一个套接字都有一个相关的应用层的通信进程;操作该套接字的代码是该进程的组成部分;4绑定确定的IP地址和传输层端口号。(2) 网间进程通信必须解决的问题1网间进程的标识问题;2与网络协议栈连接的问题;3多重协议的识别问题;4不同的通信服务的问题。(3) 控件ID和控件连接变量之间的区别(4) UpdateData()函数的作用 获得用户的当前输入(服务器名,用户名和口令)(5) MFC、MFC编程的特点MFC是一个编程框架,由MFC中的各种类结合起来构成的。1 MFC类库是C+类库,分别封装了Win32应用程序编程接口、应用程序的概念、OLE特性、以及ODBC和DAO数据访问的功能;2 MFC将众多类的共同特性抽象出来,设计出一些基类,作为实现其他类的基础。3 以C+为基础,支持虚拟函数和动态约束。4 MFC实现了对应用程序概念的封装,实现了类、类的继承、动态约束、类的关系和相互作用的封装。(6) C/S模式面向连接编程流程 基于TCP协议的编写步骤服务器端 1.创建流式监听socket 2.获得本地IP地址,主机名和端口号,并用来填充socket 3.调用bind函数绑定本地端口号4.调用listen开始进行监听5.调用accept建立连接,得到新的套接字6.进行循环利用recv,send在新的套接字上读写数据,直到完成交换7.关闭套接字 客户端1.建立流式套接字socket2.利用connect与server端连接3.利用send和recv向server进行数据交换4.关闭套接字(7)C/S模式非连接编程流程基于UDP协议的编写步骤 服务器端 1.创建数据报式socket 2.获得本地IP地址,主机名和端口号,并用来填充socket 3.调用bind函数绑定本地端口号 4.建立循环,利用recrfrom从套接字读写数据,直到交换完成 5.关闭套接字 客户端 1.创建数据报式socket 2.调用bind函数绑定本地端口号 3.利用sendto和recvfrom向server进行数据交换 4.关闭套接字(8)常用程序功能分析。四、综合题(共30分)一、 VC界面程序设计(四则运算、计算器)步骤:四则运算(1)创建MFC AppWizard工程文件,选择基于对话框应用程序;(2)界面设计:在对话框界面放置如上图所示控件,将左右两编辑框分别连接一个double类型的变量m_e1和m_e2,结果编辑框连接一个double类型的变量m_e。 (3)初始化:单选按钮的初始化工作在对话框的初始化函数实现,/ TODO: Add extra initialization here;注意在提示信息的后面添加:CheckRadioButton(IDC_RADIO1,IDC_RADIO4,IDC_RADIO1);(4)计算按钮消息响应设置:void CMyDlg:OnButton1() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(IsDlgButtonChecked(IDC_RADIO1)m_e=m_e1+m_e2;elseif(IsDlgButtonChecked(IDC_RADIO2)m_e=m_e1-m_e2;elseif(IsDlgButtonChecked(IDC_RADIO3)m_e=m_e1*m_e2;elsem_e=m_e1/m_e2;UpdateData(FALSE);步骤:计算器1、拖动对话框调整窗口大小,并放置如图要求的控件2、设置按钮的属性(改标题)3、设置控件属性设置:(1)ID:IDC_EDIT(2)本排列为Right,选择Read-Only(3)连接添加变量m_e(Value,CString)4、为类C*Dlg添加成员变量:(1)public:char Computype;/用于存储运算符(2)protected:CString FirstInput;/用于存储左操作数5、为按钮单击响应添加函数代码(1)数字的函数代码分别为:m_e=m_e+1;/该示例为1按钮代码,其他数字按钮将字符串1分别改为0、2、3、9;UpdateData(FALSE);(2)+-*/按钮:FirstInput=m_e;m_e= ;UpdateData(FALSE);CompuType=+;/该示例为+按钮代码,其他按钮将字符+改为-、*、/;(3)Clear按钮:m_e.Empty();UpdateData(FALSE);(4)About按钮:CAboutDlg dlgAbout;dlgAbout.DoModal();(5)Close按钮:OnOK();(6)=按钮:int Temp;int First,New;First=atoi(FirstInput.GetBuffer(24);/atoi()将字符串类型转换为整型FirstInput.ReleaseBuffer(-1);New=atoi(m_e.GetBuffer(24);m_e.ReleaseBuffer(-1);switch(CompuType)case +:Temp=First+New;break;case -:Temp=First-New;break;case *:Temp=First*New;break;case /:Temp=First/New;break;sprintf(m_e.GetBuffer(24),%d,Temp);m_e.ReleaseBuffer(-1);UpdateData(FALSE);二、 简单编程题目例:已知Internet通信域的地址结构变量sockaddr_in(也可以写成SOCKADDR_IN)的定义如下,现在定义一个结构体变量SOCKADDR_IN addrSrv;请初始化地址变量addrSrv,要求:IP地址INADDR_ANY,端口号3000,协议采用TCP/IP,IP地址和端口号要使用网络字节顺序。(1)struct sockaddr_in short sin_family; unsigned short sin_port; struct in_addr sin_addr; char sin_zero8; ;(2)struct in_addr union struct u_char s_b1,s_b2,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论