首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下程序说明和C++程序,将程序段中(1)~(7)空缺处的语句填写完整。 [说明] 使用MFC的CSocket类在两个或者多个应用程序之间建立通信。服务器应用程序先创建一个特殊的 Socket,用于监听客户应用程序的连接请求,然后再创建新
阅读以下程序说明和C++程序,将程序段中(1)~(7)空缺处的语句填写完整。 [说明] 使用MFC的CSocket类在两个或者多个应用程序之间建立通信。服务器应用程序先创建一个特殊的 Socket,用于监听客户应用程序的连接请求,然后再创建新
admin
2010-01-15
31
问题
阅读以下程序说明和C++程序,将程序段中(1)~(7)空缺处的语句填写完整。
[说明]
使用MFC的CSocket类在两个或者多个应用程序之间建立通信。服务器应用程序先创建一个特殊的 Socket,用于监听客户应用程序的连接请求,然后再创建新的Socket来完成连接。从客户和服务器两端读取该连接,直到一个需要处理的报文到来为止。以下C++程序将封装这些功能,这样所有应用程序需要完成的只是创建一个Socket连接,然后处理到来的报文。这将包括一个新的服务器Socket类、新客户端Socket类和新的报文队列类。
创建新的服务器Socket类程序的框架如下。第1个函数ListenEx()用于通知Socket开始监听客户应用程序。第2个函数OnAccept()在接收到连接请求时被调用。在其中创建新的Socket,并立刻设置它开始从客户应用程序读取报文,这些是通过调用第3个函数RecvThread()来完成的,该函数位于它自己的线程中。
[C++程序]
[ListenEX()函数]
选项
答案
这是一道要求读者使用Socket与另一个Windows应用程序或者与任何支持Socket的应用程序通信的编程题。本题的解答思路如下。 题干已给出“函数ListenEx()用于通知Socket开始监听客户应用程序”,ListenEx()通过调用CSocket的Listen()函数监听来自客户应用程序的连接请求。ListenEx()同时在结构中设置其调用参数,这些参数最终被传递到RecvThread()函数以实现读操作。因此()空缺处应填入“Listen()”。 函数OnAccept()在接收到连接请求时被调用。它使用文本编辑器(TextEdit)重载CSocket的OnAccept()函数,在其中将创建新的Socket,用于建立与客户应用程序的连接,同时使用由用户定义的标识符作为关键字将该Socket保存到对象映射表中。然后,设置Socket进入同步模式,并创建一个线程从套接字中读取数据。因此(2)空缺处应填入“newCSocket”,用于完成初始化工作。 函数RecvThread()使用CSocket的Receive()函数等待,直到通过套接字接收到新的报文。该线程假定每一个报文包含固定字长的报头和可变长度的报文体。对于每一个新的套接字报文,RecvThread()还向应用程序发送WM_New_MESSAGE消息,通知新的报文等待处理。如果套接字关闭,线程将在终止前向应用程序发送WM_DONE_MESSAGE消息,所以(3)空缺处应填入“len+=res”。该函数没有返回值,所以(4)空缺处应填入“return 0”。 接下来添加函数SendEx()向客户应用程序发回报文,该函数将根据用户定义的标识符从对象映射表中取出Socket对象,然后调用线程函数向该Socket发送报文,因此(5)空缺处应填入“m_mapSockets[id]”。 SendThread使用CSocket类的Send()函数将报文数据发送出去,因此(6)空缺处应填入“Send”。 服务器套接字类中的最后需要创建关闭函数,这个函数不仅将关闭监听套接字,而且将关闭创建的所有与客户端连接的套接字,因此(7)空缺处应填入“Close()”。
解析
转载请注明原文地址:https://jikaoti.com/ti/Koi7FFFM
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
以下叙述中,不正确的是()。
零件关系P(零件名,条形码,供应商,产地,价格)中的(12)属性可以作为该关系的主键。查询产于西安且名称为“P2”的零件,结果以零件名、供应商及零件价格分列表示,对应的SQL语句为:SELECT零件名,供应商,价格FROMPWHE
CPU是在___________结束时响应DMA请求的。
采用插入排序算法对n个整数排序,其基本思想是:在插入第i个整数时,前i-1个整数已经排好序,将第i个整数依次和第i-1,i-2,…个整数进行比较,找到应该插入的位置。现采用插入排序算法对6个整数{5,2,4,6,1,3}进行从小到大排序,则需要进行(31)
软件测试的基本方法包括白盒测试和黑盒测试方法,以下关于二者之间关联的叙述,错误的是(61)。
如果主存容量为16M字节,且按字节编址,表示该主存地址至少应需要(3)位。
开发专家系统时,通过描述事实和规则由模式匹配得出结论,这种情况下适用的开发语言是(19)。
关于软件著作权产生的时间,下面表述正确的是(10)。
给定包含n个正整数的数组A和正整数x,要判断数组A中是否存在两个元素之和等于x。先用插入排序算法对数组A进行排序,再用以下过程P来判断是否存在两个元素之和等于x。low=l;high=n;while(high>low)ifA[low]+A[hig
某模块内涉及多个功能,这些功能必须以特定的次序执行,则该模块的内聚类型为______内聚。
随机试题
员工招聘的作用有()
患者女,56岁。因肉眼血尿就诊,行肾脏彩超及CT、发现右肾实质性占位,大小约3cm,左肾结石,轻度肾盂积水。该患者适合的手术方式是
能诱导细胞膜上Na +-K+ATP酶生成的是能使氧化与磷酸化偶联过程脱离的是
()是所有权最基本的权能。
对于污水第二类污染物,在()排放口采样,其最高允许排放浓度必须达到本标准要求。
小李买了块新手表,他把新手表与家里挂钟对照,发现手表比挂钟一天走慢了三分钟,后来他又把家中的挂钟时间与电台的标准时对照,发现挂钟时间比电台标准时一天快了三分钟,小李因此推断,他的手表是准确的。以下选项中,对小李推断的评价正确的是()。
技术创新是指在经济发展理论中,新技术、新发明在生产中的首次应用,是在生产体系中建立新的生产函数或供应函数,引进一种生产要素和生产条件的新组合。经济学强调技术创新具有非独占性、不确定性、市场性和系统性等特点。根据以上的定义,下列行为属于经济学范畴技术
NAT按技术类型分为哪3种转换方式?请解释画线部分内容含义?
在SQL中,集合成员算术比较操作“元组ALL(集合)”中的“ALL”的等价操作符是()。
Conservationistsmaybemiscalculatingthenumbersofthethreatenedanimalssuchaselephants,sayAfricanandAmericanresearc
最新回复
(
0
)