📄 index.htm
字号:
buffer </span><span style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>中已有资料。</span><span
lang=EN-US style='mso-bidi-font-size:10.5pt'> <br>
</span><span style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>(</span><span
lang=EN-US style='mso-bidi-font-size:10.5pt'>2</span><span style='mso-bidi-font-size:
10.5pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>)原先系统的</span><span lang=EN-US style='mso-bidi-font-size:
10.5pt'> input buffer </span><span style='mso-bidi-font-size:10.5pt;font-family:
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>是空的,当系统再收到资料时,会通知我们。</span><span
lang=EN-US style='mso-bidi-font-size:10.5pt'> <br>
</span><span style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>(</span><span
lang=EN-US style='mso-bidi-font-size:10.5pt'>3</span><span style='mso-bidi-font-size:
10.5pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>)使用者呼叫</span><span lang=EN-US style='mso-bidi-font-size:
10.5pt'> recv </span><span style='mso-bidi-font-size:10.5pt;font-family:宋体;
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>或</span><span
lang=EN-US style='mso-bidi-font-size:10.5pt'> recvfrom </span><span
style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>函式,从</span><span lang=EN-US
style='mso-bidi-font-size:10.5pt'> input buffer </span><span style='mso-bidi-font-size:
10.5pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>读取资料,但是并没有一次将资料读光,此时会再驱动一个</span><span lang=EN-US
style='mso-bidi-font-size:10.5pt'> FD_READ </span><span style='mso-bidi-font-size:
10.5pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>事件,表示仍有资料在</span><span lang=EN-US style='mso-bidi-font-size:
10.5pt'> input buffer </span><span style='mso-bidi-font-size:10.5pt;font-family:
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>中。</span><span
lang=EN-US style='mso-bidi-font-size:10.5pt'> <br>
</span><span style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'> 读者必须注意:如果我们收到</span><span
lang=EN-US style='mso-bidi-font-size:10.5pt'> FD_READ </span><span
style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>事件通知的讯息,但是我们故意不呼叫</span><span
lang=EN-US style='mso-bidi-font-size:10.5pt'> recv </span><span
style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>或</span><span lang=EN-US
style='mso-bidi-font-size:10.5pt'> recvfrom </span><span style='mso-bidi-font-size:
10.5pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>来读取资料的话,尔後系统又收到资料时,并不会再次通知我们,一定要等我们呼叫了</span><span
lang=EN-US style='mso-bidi-font-size:10.5pt'> recv </span><span
style='mso-bidi-font-size:10.5pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>或</span><span lang=EN-US
style='mso-bidi-font-size:10.5pt'> recvfrom </span><span style='mso-bidi-font-size:
10.5pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>後,才有可能再收到</span><span lang=EN-US style='mso-bidi-font-size:
10.5pt'>FD_READ </span><span style='mso-bidi-font-size:10.5pt;font-family:宋体;
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>的事件通知。(</span><span
style='mso-bidi-font-size:10.0pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>林军鼐)</span><span lang=EN-US
style='mso-bidi-font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US style='mso-bidi-font-size:10.0pt'><span
style='mso-tab-count:1'> </span></span><b><span
style='mso-bidi-font-size:10.0pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>(</span></b><b><span lang=EN-US
style='mso-bidi-font-size:10.0pt'>2</span></b><b><span style='mso-bidi-font-size:
10.0pt;font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>)</span></b><span style='mso-bidi-font-size:10.0pt;
font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>因为有些基本操作写在动态库中,动态库中长时间操作(加解密)的进展情况,应该在主程序中体现出来,这样比较友好。本程序采用了回调函数机制解决这个问题。</span><span
lang=EN-US style='mso-bidi-font-size:10.0pt'><o:p></o:p></span></p>
<p class=MsoNormal><span lang=EN-US>static void DrawProg(int i);</span></p>
<p class=MsoNormal><span lang=EN-US>void CUsbEvpPage::DrawProg(int i)</span></p>
<p class=MsoNormal><span lang=EN-US>{</span></p>
<p class=MsoNormal><span lang=EN-US><span style='mso-tab-count:1'> </span>((CUsbEvpPage
*)((CPropertySheet *)AfxGetMainWnd())->GetPage(8))-></span></p>
<p class=MsoNormal><span lang=EN-US><span style='mso-tab-count:1'> </span><span
style='mso-tab-count:1'> </span>m_Progress.SetPos(i);//</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>没有引入</span><span lang=EN-US>this,</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>因为这个函数在动态库中调用。</span></p>
<p class=MsoNormal><span lang=EN-US>}</span></p>
<p class=MsoNormal style='text-indent:21.0pt'><span style='font-family:宋体;
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>动态库在一定条件下调用了这个函数,指示了操作的进度。</span></p>
<p class=MsoNormal style='text-indent:21.0pt'><b><span style='font-family:宋体;
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>(</span><span
lang=EN-US>3</span></b><b><span style='font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>)</span></b><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>程序做完了,如果用一些诸如</span><span lang=EN-US>SMARTCHK</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>的工具检查一下,说不定会有收获。</span></p>
<p class=MsoNormal><b><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>程序</span><span lang=EN-US>BUG</span></b><span
lang=EN-US>:</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1;
tab-stops:list 18.0pt'><![if !supportLists]><span lang=EN-US>1、<span
style='font:7.0pt "Times New Roman"'> </span></span><![endif]><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>不能再同一个程序中用</span><span lang=EN-US>SSL</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>客户端连接</span><span lang=EN-US>SSL</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>服务器,否则</span><span lang=EN-US>……</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1;
tab-stops:list 18.0pt'><![if !supportLists]><span lang=EN-US>2、<span
style='font:7.0pt "Times New Roman"'> </span></span><![endif]><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>由于对</span><span lang=EN-US>OPENSSL</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>掌握的有限,部分代码存在内存泄漏。</span></p>
<p class=MsoNormal style='margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1;
tab-stops:list 18.0pt'><![if !supportLists]><span lang=EN-US>3、<span
style='font:7.0pt "Times New Roman"'> </span></span><![endif]><span
lang=EN-US>SSL</span><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>客户端连接</span><span lang=EN-US>SSL</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>服务器,显示乱码是因为没有处理半个汉字;如果用</span><span lang=EN-US>IE</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>连接就没有这个问题。</span></p>
<p class=MsoNormal style='text-indent:21.0pt'><span style='font-family:宋体;
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>因为程序代码较多,不再一一介绍,具体实现请参看源代码。代码中存在的错误请指出,以便在下一个版本中修正。</span></p>
<p class=MsoNormal style='text-indent:21.0pt'><span style='font-family:宋体;
mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>一些头文件和</span><span
lang=EN-US>lib</span><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>采用了绝对路径,需要重新配置。</span></p>
<p class=MsoNormal style='text-indent:21.0pt'><span lang=EN-US>CA</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>和</span><span lang=EN-US>EVP</span><span style='font-family:
宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:"Times New Roman"'>动态库的源代码问题还很多,因此没有发布,待完善了再拿出来献丑。</span></p>
<p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>关于数字证书和</span><span lang=EN-US>SSL</span><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>的应用,可以在网络上找一些介绍,这里不再赘述。</span></p>
<p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>程序在</span><span lang=EN-US>win2000 +
vc6+ACCESS2000</span><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>下面测试过。如有问题与我联系。</span></p>
<p class=MsoNormal><span lang=EN-US>Email:<a href="mailto:hpxs@hotmail.com">hpxs@hotmail.com</a></span></p>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -