


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1. 用公钥对某字符串进行加密后,输出的结果长度是否是定长?答:加密的明文长度不能超过RSA密钥的长度-11byte,比如1024位(bit)的,明文长度不能超过117(byte)。密文的长度总是密钥的长度的一半,比如1024位(bit)的,密文长度是64(byte),如果是1032位(bit),密文长度是65位(byte)。2. 如何生成数字格式的随机数?答:用RAND_bytes(unsigned char* buf, int size)函数可以生成定长的随机数,长度由size参数指定,生成的随机数放在buf中。可以用printf(%0.2x,bufi)将buf中的各个元素显示出来,其中表示进制显示表示显示的域宽表示如果域的宽度不足的话,用补齐,如果没有指明的话,默认是用空格补齐的3. Char* smi1和unsigned char* smi1有什么区别?当用SHA1_final生成摘要的时候,如果将char* smi1强制转型为unsigned char*类型的话,转而用printf(“%0.2x”,smi1i)输出时,输出的是地址,只有当时就声明成unsigned char* smi1,才可以正常输出。4. 在为message4对象申请了空间之后,对其delete时报异常,是怎么回事?答:经过调试,发现在delete另外一个变量即message4_str字符数组时,也会报错。最后确定,由于在申请另一个变量message4_str字符数组时,由于笔误导致申请的空间过小,而对其赋值时用memcpy函数私自拓展了这个数组空间,因此使得在delete message4_str时发生异常。当改正了这个笔误之后,delete message4_str正常,并且delete message4也正常了,猜测有可能对message4_str的空间私自扩展影响到了message4的内存空间。5. 在调试socket发送和接收数据时,发现recv函数总是返回-1,无法接收导数据,怎么回事?答:经过反复查找原因,发现在accept(_socket, NULL, NULL)这条语句时,一直用的是result = accept(_socket, NULL, NULL),然后通过result值来判断该语句是否出错,原因就出在这里!accept函数返回的不是函数执行结果,而是正在连接的socket,因此应该用_socket = accept(_socket, NULL, NULL)这条语句,才能正常通过socket接收数据!6. 讲一个socket重复bind在某一端口上时会报错在调试socket接收数据时,有时需要将同意个socket变量反复bind到同一个(IP,port)上,但是当第二次进行bind时,会出错,调用WSAGetLastError()会返回100048,意思是端口已经被调用。这时需要通过setsockopt()函数设置SO_REUSEADDR参数,从而达到可以重复bind同一个端口的目的。具体设置方法如下:BOOL bReusePort = TRUE;/ SET SOCKET REUSE Addressif (setsockopt(_socket, SOL_SOCKET, SO_REUSEADDR, (char *)&bReusePort, sizeof(bReusePort) ) = -1)return false;此时执行bind方法时便不会报错。7. 在共享存储模式下,完成进程间通信时,第二次通过在共享内存中写入数据时,效果是对第一次在共享内存中已写入数据的覆盖,程序不会自动清空在共享内存中写入的数据,问题是,如何才能清空共享内存中写入的数据,使得第二次或第三次等向共享内存中写入数据时,能写入干净的数据?答:可以用ZeroMemory()函数对目标内存进行清空。其函数原型如下:VOID ZeroMemory(PVOID Destination,/ address of block to fill with zerosDWORD Length / size, in bytes, of block to fill with zeros);对于length的大小可以从创建共享内存时的代码看出,创建共享内存时会指定所创建的共享内存的大小,可以根据这个大小来对这一片内存进行清零工作。如:HANDLE hMapFile =CreateFileMapping(NULL,/内存映射文件可以指定一个硬盘文件&sa,/返回的句柄hMap能不能被子进程(?什么是子进程)继承,NULL表示不能PAGE_READWRITE,/表示进程对该文件的读写操作,该进程为写进程0,/内存映射文件大小,高32字节0xFFFF,/内存映射文件大小,低32字节BEONP_Memory/共享内存区域名称,作为唯一标识。);在这个创建共享文件的代码中,指定了所创建的共享内存大小为低32字节,即0xFFFF(64k),因此可以用ZeroMemory(pFile,0xFFFF)来清理这篇内存,pFile是指定目标内存首地址的指针。8. 在两个进程代码中,设置好了进程间通信的PV操作信号量,但是程序刚刚运行就会在第一个WaitForSingleObject()处无限期等待,原因出在什么地方?答:经调查,在两个进程出都写了创建信号量的代码(用CreateEvent来创建信号量的话,如果内存中存在相同名称的信号量,就会自动用OpenEvent函数来打开那个同名信号量。)在服务端:writeHandle = CreateEvent(&sa, FALSE,FALSE ,WRITE_EVENT);readHandle = CreateEvent(&sa, FALSE,FALSE,READ_EVENT);在服务提供者lsp端:writeHandle = CreateEvent(0,false,1,WRITE_EVENT);/写信号,初识状态为1,可写readHandle = CreateEvent(0,false,0,READ_EVENT);/读信号,初识状态为0,不可读可见,在服务端的writeHandle = CreateEvent(&sa, FALSE,FALSE ,WRITE_EVENT);这行语句中第三个参数的值是错误的,FALSE含义是初始化的状态,对于写信号量(writeHandle)的初始化状态应该为true,这里初始化成了false。与lsp端的writeHand的初始化是矛盾的,而windows加载信号量时,以第一次为准。在程序运行时,先启动的windows服务,再加载的lsp端的服务提供者,因此writeHandle的状态被初始化成了false,便导致了,程序在WaitForSingleObject()处无限期等待了。9. 编写了一个服务beonp_service,在服务中用到了berkeley数据库,但是只要在代码中存在ret = db_create(&dbp,NULL,0);这条创建数据库的语句的话,该工程编译好的服务就会无法启动,为什么?答:使用berkeleyDB的话需要用到berkeleyDB自带的dll文件,在启动服务的时候会检测所有dll文件并进行加载,有可能在加载berkeleyDB自带的dll文件的时候与系统账户的权限产生了冲突,(服务的默认账户是系统账户,不是本地账户)导致无法成功地启动服务。解决方法是,在控制面板管理工具服务中,找到该服务并双击,在弹出的窗口中选择登录选项卡,在登录身份处不用本地系统账户,而选择用“此账户”,并在后面的文本框中输入登录windows系统的用户名和密码,这样该服务就有权限使用berkeleyDB自带的dll文件了,编译好的服务也能够成功启动了。10. 在solaris下编译工程时,每次执行命令都会出现mksh: Warning: newli
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 角色形态多样课件
- 2025年艺术市场数字化交易平台与艺术品市场创新商业模式案例研究报告
- 第13课 算算自家的开支教学设计-2025-2026学年初中信息技术川教版八年级上册-川教版2018
- 中级银行从业资格之中级银行业法律法规与综合能力综合提升练习试题完整答案详解
- 城市交通管理系统建设项目协议
- 新媒体广告设计中的版式布局
- 自考专业(公共关系)考前冲刺练习试题及参考答案详解(模拟题)
- 无人机物流配送在快递行业的应用创新与实践案例
- 重难点自考专业(行政管理)试题【名师系列】附答案
- 2 烛之武退秦师(教学设计)-2024-2025学年高一语文必修下册同步备课系列(教学设计+教学设计)(统编版2019)
- HemiView森林冠层图像分析系统
- 创新方法教程题库题库(449道)
- 建设工程消防验收评定规则
- 山东省临沂市兰山区2022-2023学年小升初数学自主招生备考卷含答案
- 电气设备交接试验方案
- D500-D505 2016年合订本防雷与接地图集
- 北邮社电机拖动与调速技术教学包课后题解
- 学校门卫岗位职责及管理制度
- JJG 1105-2015氨气检测仪
- GB/T 8118-2010电弧焊机通用技术条件
- GB/T 17421.7-2016机床检验通则第7部分:回转轴线的几何精度
评论
0/150
提交评论