⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3.2.3 服务应用程序.htm

📁 Windows2000后台服务程序开发手册
💻 HTM
📖 第 1 页 / 共 2 页
字号:
                <TD style="LINE-HEIGHT: 25px" align=middle><FONT 
                  style="LINE-HEIGHT: 25px" face=arial color=#000000 
                  size=2><FONT style="LINE-HEIGHT: 25px" face=arial 
                  color=#3e80d7 size=2><B 
                  style="LINE-HEIGHT: 25px">&nbsp;图3-8&nbsp;</B></FONT>在TimeClient范例应用程序之起始对话方块</FONT></TD><BR>&nbsp;&nbsp;&nbsp; 
              </TR><BR>&nbsp; </TBODY></TABLE><BR></CENTER><BR>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000 
            size=2>为了察看客户端与服务器端之通讯,您必须在对话方块上方之编辑控制项中键入服务器的名称。如果您在同一个机器上执行客户端与服务器之处理程序,请键入如图3-8所示之句号并以其为伺服名称。当您按下Request 
            Server’s 
            Time之按钮时,客户端应用程序会呼叫CreateFile,以决定要连接哪一个服务器与客户端,并使服务器醒来并且处理客户端的要求。如果伺服端并没有执行,则CreateFile会执行失败并显示一个如图3-9所示之讯息方块。</FONT></P><BR>
            <P><BR style="LINE-HEIGHT: 25px"> </P><BR>
            <CENTER style="LINE-HEIGHT: 25px"><BR>
            <P><BR>&nbsp; <INPUT id=9 style="LINE-HEIGHT: 25px" type=image 
            height=118 width=500 src="3.2.3 服务应用程序.files/3-9.gif" border=0 
            &#111nclick="imgclick"></P></CENTER><BR>
            <CENTER style="LINE-HEIGHT: 25px"><BR>&nbsp; 
            <TABLE style="LINE-HEIGHT: 25px" border=0><BR>
              <TBODY style="LINE-HEIGHT: 25px"><BR>&nbsp;&nbsp;&nbsp; 
              <TR style="LINE-HEIGHT: 25px"><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

                <TD style="LINE-HEIGHT: 25px" align=middle><FONT 
                  style="LINE-HEIGHT: 25px" face=arial color=#000000 
                  size=2><FONT style="LINE-HEIGHT: 25px" face=arial 
                  color=#3e80d7 size=2><B 
                  style="LINE-HEIGHT: 25px">&nbsp;图3-9&nbsp;</B></FONT>当TimeService没有执行时,经由TimeClient所显示之讯息方块</FONT></TD><BR>&nbsp;&nbsp;&nbsp; 
              </TR><BR>&nbsp; </TBODY></TABLE><BR></CENTER><BR>
            <P><FONT style="LINE-HEIGHT: 25px" face=arial color=#000000 
            size=2>如果服务已经执行,CreateFile会回传一个有效的handle;而客户端会等待时间资料经由一个非同步呼叫ReadFile之管道传送回来。在客户端取得资料后,客户端的管道handle会被关闭,由服务器传送过来的时间会被转换成客户端的本地时间,并且会更新初始对话方块的内容,其结果如图3-10所示。</FONT></P><BR>
            <P><BR style="LINE-HEIGHT: 25px"> </P><BR>
            <CENTER style="LINE-HEIGHT: 25px"><BR>
            <P><BR>&nbsp; <INPUT id=10 style="LINE-HEIGHT: 25px" type=image 
            height=176 width=310 src="3.2.3 服务应用程序.files/3-10.gif" border=0 
            &#111nclick="imgclick"></P></CENTER><BR>
            <CENTER style="LINE-HEIGHT: 25px"><BR>&nbsp; 
            <TABLE style="LINE-HEIGHT: 25px" border=0><BR>
              <TBODY style="LINE-HEIGHT: 25px"><BR>&nbsp;&nbsp;&nbsp; 
              <TR style="LINE-HEIGHT: 25px"><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

                <TD style="LINE-HEIGHT: 25px" align=middle><FONT 
                  style="LINE-HEIGHT: 25px" face=arial color=#000000 
                  size=2><FONT style="LINE-HEIGHT: 25px" face=arial 
                  color=#3e80d7 size=2><B 
                  style="LINE-HEIGHT: 25px">&nbsp;图3-10&nbsp;</B></FONT>TimeClient范例应用程序中被更新的对块方块内容</FONT></TD><BR>&nbsp;&nbsp;&nbsp; 
              </TR><BR>&nbsp; </TBODY></TABLE><BR></CENTER><BR>
            <DIV style="LINE-HEIGHT: 25px; BACKGROUND-COLOR: #d7d7d7"><FONT 
            style="LINE-HEIGHT: 25px" face=Arial size=3><PRE style="LINE-HEIGHT: 25px">TimeClient.cpp <BR><BR>/************************************, ******************************** <BR><BR>模组:TimeClient.cpp <BR><BR>通告:Copyright (c)2000 Jeffrey Richter <BR><BR>********************************************************************/ <BR><BR>#include "..\CmnHdr.h" // 请参阅附录A <BR><BR>#include <WINDOWSX.H> <BR><BR>#include "..\ClassLib\EnsureCleanup.h" // 请参阅附录B <BR><BR>#include "Resource.h" <BR><BR>////////////////////////////////////////////////////////////////////////////// <BR><BR>BOOL Dlg_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) { <BR><BR> chSETDLGICONS(hwnd, IDI_TIMECLIENT); <BR><BR> // 假设服务与客户端程序在同一台机器上执行 <BR><BR> SetDlgItemText(hwnd, IDC_SERVER, TEXT(".")); <BR><BR> return(TRUE); <BR><BR>} <BR><BR>////////////////////////////////////////////////////////////////////////////// <BR><BR>void Dlg_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) { <BR><BR> switch (id) { <BR><BR> case IDCANCEL: <BR><BR>&nbsp; EndDialog(hwnd, id); <BR><BR>&nbsp; break; <BR><BR> case IDOK: <BR><BR>&nbsp; // 建构管道的平台 <BR><BR>&nbsp; TCHAR sz[500]; <BR><BR>&nbsp; sz[0] = sz[1] = TEXT(’\\’); <BR><BR>&nbsp; GetDlgItemText(hwnd, IDC_SERVER, &amp;sz[2], chDIMOF(sz) - 2); <BR><BR>&nbsp; lstrcat(sz, TEXT("\\pipe\\TimeService")); <BR><BR>&nbsp; // 尝试与管道连结 <BR><BR>&nbsp; // 取得一个handle以与管道沟通 <BR><BR>&nbsp; CEnsureCloseFile hpipe = <BR><BR>&nbsp;&nbsp; CreateFile(sz, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL); <BR><BR> if (hpipe.IsValid()) { <BR><BR>&nbsp; // 有效的handle,从管道中读取时间 <BR><BR>&nbsp; SYSTEMTIME st; <BR><BR>&nbsp; DWORD cbRead = 0; <BR><BR>&nbsp; ReadFile(hpipe, &amp;st, sizeof(st), &amp;cbRead, NULL); <BR><BR>&nbsp; // 转换UTC时间至客户端机器的本地时间并显示它 <BR><BR>&nbsp; SystemTimeToTzSpecificLocalTime(NULL, &amp;st, &amp;st); <BR><BR>&nbsp; GetDateFormat(LOCALE_USER_DEFAULT, DATE_LONGDATE, &amp;st, NULL, sz, <BR><BR>&nbsp;&nbsp; chDIMOF(sz)); <BR><BR>&nbsp; SetDlgItemText(hwnd, IDC_DATE, sz); <BR><BR>&nbsp; GetTimeFormat(LOCALE_USER_DEFAULT, LOCALE_NOUSEROVERRIDE, &amp;st, NULL, <BR><BR>&nbsp;&nbsp; sz, chDIMOF(sz)); <BR><BR>&nbsp; SetDlgItemText(hwnd, IDC_TIME, sz); <BR><BR> } else { <BR><BR>&nbsp; // 无效的handle,回执一个错误 <BR><BR>&nbsp; SetDlgItemText(hwnd, IDC_DATE, TEXT("Error")); <BR><BR>&nbsp; SetDlgItemText(hwnd, IDC_TIME, TEXT("Error")); <BR><BR>&nbsp; // 取得错误的文字说明 <BR><BR>&nbsp; HLOCAL hlocal = NULL;&nbsp;&nbsp; // 取得错误讯息字串之缓冲器 <BR><BR>&nbsp; FormatMessageA( <BR><BR>&nbsp;&nbsp;&nbsp; FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER, <BR><BR>&nbsp;&nbsp;&nbsp; NULL, GetLastError(), <BR><BR>&nbsp;&nbsp;&nbsp; MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), (PSTR) &amp;hlocal, 0, NULL); <BR><BR>&nbsp;&nbsp; if (hlocal != NULL) { <BR><BR>&nbsp;&nbsp;&nbsp; chMB((PCSTR)LocalLock(hlocal)); <BR><BR>&nbsp;&nbsp;&nbsp; LocalFree(hlocal); <BR><BR>&nbsp;&nbsp; } <BR><BR>&nbsp; } <BR><BR>&nbsp; break; <BR><BR> } <BR><BR>} <BR><BR>////////////////////////////////////////////////////////////////////////////// <BR><BR>INT_PTR WINAPI Dlg_Proc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { <BR><BR> switch (uMsg) { <BR><BR> chHANDLE_DLGMSG(hwnd, WM_INITDIALOG, Dlg_OnInitDialog); <BR><BR> chHANDLE_DLGMSG(hwnd, WM_COMMAND, Dlg_OnCommand); <BR><BR> } <BR><BR> return(FALSE); <BR><BR>} <BR><BR>////////////////////////////////////////////////////////////////////////////// <BR><BR>int WINAPI _tWinMain(HINSTANCE hinstExe, HINSTANCE, PTSTR pszCmdLine, int) { <BR><BR> DialogBox(hinstExe, MAKEINTRESOURCE(IDD_TIMECLIENT), NULL, Dlg_Proc); <BR><BR> return(0); <BR><BR>} <BR><BR>//////////////////////////////// End of File /////////////////////////////////</PRE></FONT></DIV><BR>
            <CENTER style="LINE-HEIGHT: 25px"><BR>&nbsp; 
            <TABLE style="LINE-HEIGHT: 25px" border=0><BR>
              <TBODY style="LINE-HEIGHT: 25px"><BR>&nbsp;&nbsp;&nbsp; 
              <TR style="LINE-HEIGHT: 25px"><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

                <TD style="LINE-HEIGHT: 25px" align=middle><FONT 
                  style="LINE-HEIGHT: 25px" face=arial color=#000000 
                  size=2><FONT style="LINE-HEIGHT: 25px" face=arial 
                  color=#3e80d7 size=2><B 
                  style="LINE-HEIGHT: 25px">&nbsp;列表3-2&nbsp;</B></FONT>TimeClient范例应用程序 
                  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  <DIV 
                style="LINE-HEIGHT: 25px"> </DIV></FONT></TD><BR>&nbsp;&nbsp;&nbsp; 
              </TR><BR>&nbsp; </TBODY></TABLE><BR></CENTER></A></DIV< p>
            <P class=content_page><A 
            href="http://www.acejoy.com/Html/Article/network/5120061009102624_P2.html">上一页</A>&nbsp;&nbsp;<A 
            href="http://www.acejoy.com/Html/Article/network/5120061009102624.html">[1]</A>&nbsp;<A 
            href="http://www.acejoy.com/Html/Article/network/5120061009102624_P2.html">[2]</A>&nbsp;<STRONG><FONT 
            color=#ff0033>[3]</FONT></STRONG>&nbsp;</P></DIV><BR><BR></TD></TR></TBODY></TABLE>
      <TABLE style="CLEAR: both" cellSpacing=0 cellPadding=0 width="97%">
        <TBODY>
        <TR>
          <TD align=right>
            <TABLE>
              <TBODY>
              <TR>
                <TD>阅读:<SPAN id=news_hits></SPAN>
                  <SCRIPT src="3.2.3 服务应用程序.files/GetHits.htm" 
                  type=text/JavaScript></SCRIPT>
                   次<BR>录入:<A 
                  href="http://www.acejoy.com/User/Info.Asp?UserName=winston">winston</A><BR><BR></TD></TR></TBODY></TABLE></TD></TR>
        <TR>
          <TD align=right>【 <A 
            href="http://www.acejoy.com/Comment.asp?ChannelID=1&amp;Action=Write&amp;InfoID=51">评论</A> 
            】 【 <A 
            href="http://www.acejoy.com/User/SendMail.asp?Title=Windows2000 服务器端应用程序开发设计指南- 服务应用程序(2)" 
            target=_blank>推荐</A> 】 【 <A href="javascript:window.print()">打印</A> 
            】 </TD></TR></TBODY></TABLE>
      <TABLE style="CLEAR: both" width="97%" align=center>
        <TBODY>
        <TR>
          <TD>上一篇:<A 
            title="标题:Windows2000 服务器端应用程序开发设计指南- 服务应用程序(1)&#13;&#10;作者:Jeffrey Richter Jason D. Clark&#13;&#10;更新:2006-10-9 10:16:14&#13;&#10;点击:845" 
            href="http://www.acejoy.com/Html/Article/network/5020061009101614.html">Windows2000 
            服务器端应用程序开发设计指南- 服务应用程序(1)</A><BR>下一篇:<A 
            title="标题:Windows2000 服务器端应用程序开发设计指南-服务控制程序&#13;&#10;作者:Jeffrey Richter Jason D. Clark&#13;&#10;更新:2006-10-10 22:10:27&#13;&#10;点击:754" 
            href="http://www.acejoy.com/Html/Article/network/5220061010221027.html">Windows2000 
            服务器端应用程序开发设计指南-服务控制程序</A> </TD></TR></TBODY></TABLE></TD>
    <TD class=mr></TD></TR></TBODY></TABLE></DIV></DIV>
<DIV class=mframe>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center>
  <TBODY>
  <TR>
    <TD class=tl></TD>
    <TD class=tm><SPAN class=tt>相关新闻</SPAN> </TD>
    <TD class=tr></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center>
  <TBODY>
  <TR>
    <TD class=ml></TD>
    <TD class=mm>
      <TABLE height="100%" cellSpacing=5 cellPadding=0 width="100%" border=0>
        <TBODY>
        <TR>
          <TD vAlign=top>
            <SCRIPT language=javascript 
            src="3.2.3 服务应用程序.files/GetCorrelative.htm"></SCRIPT>
          </TD></TR></TBODY></TABLE></TD>
    <TD class=mr></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center>
  <TBODY>
  <TR>
    <TD class=tl></TD>
    <TD class=tm><SPAN class=tt>本文评论</SPAN> </TD>
    <TD class=tr></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center>
  <TBODY>
  <TR>
    <TD class=ml></TD>
    <TD class=mm>
      <P>&nbsp;</P>
      <TABLE height="100%" cellSpacing=5 cellPadding=0 width="100%" border=0>
        <TBODY>
        <TR>
          <TD vAlign=top>
            <SCRIPT language=javascript 
            src="3.2.3 服务应用程序.files/Comment.htm"></SCRIPT>
          </TD></TR></TBODY></TABLE></TD>
    <TD class=mr></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center>
  <TBODY>
  <TR>
    <TD class=ml></TD>
    <TD class=mm></TD>
    <TD class=mr></TD></TR></TBODY></TABLE></DIV>
<TABLE id=footer cellSpacing=0 cellPadding=0 border=0>
  <TBODY>
  <TR style="LINE-HEIGHT: 130%" align=middle>
    <TD height=23>&nbsp;<A 
      href='javascript:window.external.addFavorite("http://www.acejoy.com","ACE开发者")'><FONT 
      color=#000000>加入收藏</FONT></A>&nbsp;- &nbsp;<A 
      href="http://www.acejoy.com/Help.asp?Action=aboutweb" target=_blank><FONT 
      color=#000000>关于本站</FONT></A>&nbsp;- &nbsp;<A class=Bottom 
      href="http://www.acejoy.com/Help.asp?Action=Copyright" target=_blank><FONT 
      color=#000000>版权申明</FONT></A>&nbsp;- &nbsp;<A class=Bottom 
      href="http://www.acejoy.com/Help.asp?Action=aboutweb" target=_blank><FONT 
      color=#000000>联系站长</FONT></A>&nbsp;- &nbsp;<A class=Bottom 
      href="http://www.acejoy.com/LinkSite.asp" target=_blank><FONT 
      color=#000000>友情链接</FONT></A>&nbsp;&nbsp; </TD></TR>
  <TR align=middle>
    <TD height=23>Copyright&copy; 2004-2006 <A 
      href="http://www.acejoy.com/">http://www.acejoy.com/</A> .All Rights 
      Reserved <A href="http://www.miibeian.gov.cn/" target=_blank>京ICP备06055248 
      </A>
      <SCRIPT language=JavaScript src="3.2.3 服务应用程序.files/stat.htm" 
      charset=gb2312></SCRIPT>
    </TD></TR></TBODY></TABLE>
<DIV></DIV>
<DIV></DIV>
<DIV></DIV>
<DIV></DIV>
<DIV></DIV><!--Powered by:CreateLive CMS Version 3.1(www.acejoy.com) CreateDate:2007-3-4 10:50:42--></DIV></DIV></DIV></DIV></DIV></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -