阅读以下程序说明和C++程序,将程序段中(1)~(7)空缺处的语句填写完整。[说明] 使用MFC的CSocket类
阅读以下程序说明和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()”。
下图所示的实验操作,不能达到相应目的是()A.干燥Cl2B.检验K2CO3中的K+C.证明HCl极 化学 2020-05-12 …
k/(k-1)是整数k能取什么值?k除以k-1是一个整数应该k只能是2和0可是怎么证了 数学 2020-05-13 …
如图所示,将平面镜和铅笔竖直放置在水平桌面上,下列说法正确的是()A.铅笔水平向右移动时,它的像将 物理 2020-05-14 …
如图所示的实验操作,能达到相应目的是()A.实验室制氯气B.检验K2CO3中的K+C.证明氨气吸易 化学 2020-05-14 …
如图所示的实验操作,不能达到相应目的是()A.干燥Cl2B.检验K2CO3中的K+C.证明氨气极易 化学 2020-05-14 …
大米和豆瓣在肥沃土壤中不能长出幼苗的原因是()A.没有种皮B.没有完整的胚C.没有光照D.土壤肥料 语文 2020-05-17 …
大米和蚕豆瓣在肥沃的土壤中不能长出幼苗的原因是[]A.没有种皮B.没有完整的胚C.没有光照D.土壤 语文 2020-05-17 …
大米和豆瓣在肥沃土壤中不能长出幼苗的原因是()A、没有种皮B、没有完整的胚C、没有光照D、土壤肥料 语文 2020-05-17 …
若图中猫的头部位置保持不变,把镜子沿MN截成两半,并分别向两侧平移一段距离,则猫的头部通过左、右两 其他 2020-05-17 …
若右图中猫的头部位置保持不变,把镜子沿MN截成两半,并分别向两侧平移一段距离,则猫的头部通过左、右 数学 2020-05-17 …