• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

    Socket模擬SOAP消息

    來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-09 08:05:59
    文檔

    Socket模擬SOAP消息

    Socket模擬SOAP消息:問題的提出: 我做了一個圖書管理系統(tǒng),是用三層結(jié)構(gòu)實現(xiàn)的,客戶端,服務(wù)器處理端和數(shù)據(jù)端。客戶端提出請求,服務(wù)器端響應(yīng),同時將從數(shù)據(jù)服務(wù)器得來的結(jié)果以SOAP 消息 發(fā)送回客戶端,客戶端解析SOAP 消息 ,將結(jié)果顯示給用戶。 實現(xiàn)方法: 好了,話不多說,
    推薦度:
    導(dǎo)讀Socket模擬SOAP消息:問題的提出: 我做了一個圖書管理系統(tǒng),是用三層結(jié)構(gòu)實現(xiàn)的,客戶端,服務(wù)器處理端和數(shù)據(jù)端??蛻舳颂岢稣埱螅?wù)器端響應(yīng),同時將從數(shù)據(jù)服務(wù)器得來的結(jié)果以SOAP 消息 發(fā)送回客戶端,客戶端解析SOAP 消息 ,將結(jié)果顯示給用戶。 實現(xiàn)方法: 好了,話不多說,

    問題的提出: 我做了一個圖書管理系統(tǒng),是用三層結(jié)構(gòu)實現(xiàn)的,客戶端,服務(wù)器處理端和數(shù)據(jù)端。客戶端提出請求,服務(wù)器端響應(yīng),同時將從數(shù)據(jù)服務(wù)器得來的結(jié)果以SOAP 消息 發(fā)送回客戶端,客戶端解析SOAP 消息 ,將結(jié)果顯示給用戶。 實現(xiàn)方法: 好了,話不多說,

    問題的提出:

    我做了一個圖書管理系統(tǒng),是用三層結(jié)構(gòu)實現(xiàn)的,客戶端,服務(wù)器處理端和數(shù)據(jù)端??蛻舳颂岢稣埱螅?wù)器端響應(yīng),同時將從數(shù)據(jù)服務(wù)器得來的結(jié)果以SOAP消息發(fā)送回客戶端,客戶端解析SOAP消息,將結(jié)果顯示給用戶。

    實現(xiàn)方法:

    好了,話不多說,現(xiàn)在開始進(jìn)入正題:

    在接到客戶端發(fā)來的請求后,我用ADO連接數(shù)據(jù)服務(wù)器并查詢(我用的是Access),得到結(jié)果集Recordset以后,將結(jié)果集中有關(guān)圖書信息格式化成XML文檔,將其以SOAP消息形式發(fā)送回客戶端

    //************************封裝成SOAP消息發(fā)送回客戶端************************//  
          int MaxRows=0;//用來獲得總的行數(shù)
          while(!pRs->EndOfFile)
          {
            MaxRows++;
            pRs->MoveNext();
          }
          pRs->MoveFirst();//這是必須的,現(xiàn)在記錄已是最后一行了
          
          int nFields;
          nFields=pRs->Fields->GetCount(); //得到字段總數(shù)
          
          CMarkup xml;
          xml.SetDoc("
    ");
          xml.AddElem( "RESULT" );
          for(int j=0;j      {
            xml.AddChildElem( "BOOK" );
            xml.IntoElem();
            for(int k=0;k        {
              _bstr_t name=pRs->Fields->GetItem((long)k)->GetName();
              _bstr_t value=pRs->Fields->GetItem((long)k)->GetValue();
              xml.AddChildElem((char *)name,(char *)value);
            }
            xml.OutOfElem();
            pRs->MoveNext();
          }
          xml.Save("Temp.xml");
          //MessageBox("xml文件生成成功");
          CFile file;
          file.Open("Temp.xml",CFile::modeRead | CFile::typeBinary);
          byte buf[64*1024];
          memset(buf,0,64*1024);
          file.ReadHuge(buf,file.GetLength());
          //用socket發(fā)送
          send(m_sockClient[i],(char *)buf,file.GetLength()+1,0);
          file.Close();
      在這里我要說明一下,在解析XML文件的時候,我借用了CMarkup類,十分感謝它的作者,因為他們的努力使得我們在解析XML文件的時候可以輕而已舉,這里再一次感謝他們!也推薦大家在解析XML文件的時候不妨試試這個類,非常的好用!

    上面的代碼還比較好懂,我也就不多解釋什么了(高手們可別笑話我哦~~)

    在接受到服務(wù)器端的SOAP消息后,客戶端就可以解析SOAP消息并把結(jié)果顯示出來了:

      CFile file;
      file.Open("Temp.xml",CFile::modeCreate | CFile::typeBinary | CFile::modeWrite );
      file.WriteHuge(recvBuf,strlen(recvBuf));
      file.Flush();
      file.Close();
      CMarkup xml;
      if(!xml.Load("Temp.xml"))
      {
        MessageBox("加載XML文件失敗!");
        return ;
      }
      ...
      
      int item=0;
      xml.ResetMainPos(); //make sure to move the point to the begin
      while (xml.FindChildElem("BOOK"))
      {
        int subItem=0;
        xml.IntoElem(); //into BOOK
        m_listCtrl.InsertItem(item,"",0); //插入一行
        CString index;
        index.Format("%d",item+1); //每行的序號
        m_listCtrl.SetItemText(item,subItem,index);
        while(xml.FindChildElem()) //循環(huán)得到節(jié)點值,也就是書的各個信息
        {
          xml.IntoElem();
          CString value=xml.GetData(); //得到值
          //MessageBox(value);
          m_listCtrl.SetItemText(item,subItem+1,value);
          subItem++;
          xml.OutOfElem();
        }
        item++;
        xml.OutOfElem(); //out BOOK
      }
    好了,這就是格式化SOAP消息和解析SOAP消息主要的部分,這是本人的一點心得,愿與大家一起分享,有不對之處還請大家多多指教。

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    Socket模擬SOAP消息

    Socket模擬SOAP消息:問題的提出: 我做了一個圖書管理系統(tǒng),是用三層結(jié)構(gòu)實現(xiàn)的,客戶端,服務(wù)器處理端和數(shù)據(jù)端。客戶端提出請求,服務(wù)器端響應(yīng),同時將從數(shù)據(jù)服務(wù)器得來的結(jié)果以SOAP 消息 發(fā)送回客戶端,客戶端解析SOAP 消息 ,將結(jié)果顯示給用戶。 實現(xiàn)方法: 好了,話不多說,
    推薦度:
    標(biāo)簽: 消息 一個 信息
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 500av大全导航精品| 国产成人无码精品一区在线观看| 国产2021精品视频免费播放 | 色综合久久综精品| 乱色精品无码一区二区国产盗| 精品99又大又爽又硬少妇毛片| 欧美精品天天操| 国产精品欧美亚洲韩国日本不卡 | 久久精品国产影库免费看| 久久精品国产亚洲AV大全| 日本Aⅴ大伊香蕉精品视频| 99精品伊人久久久大香线蕉| 91精品国产色综合久久| 奇米影视7777久久精品| 亚洲高清国产拍精品青青草原| 国产精品无码专区在线观看| 视频二区国产精品职场同事| 国产精品免费网站| 999精品视频| 99国产欧美久久久精品蜜芽 | 久久亚洲精品国产精品| 亚洲AV日韩精品久久久久| 亚洲精品无码99在线观看| 天天爽夜夜爽8888视频精品| 欧美成人精品高清在线播放| 韩国三级中文字幕hd久久精品| 国产精品无码素人福利| 国产精品网址在线观看你懂的| 国产成人精品一区二区三区| 99在线精品免费视频| 91精品国产品国语在线不卡| 亚洲日韩精品欧美一区二区| 真实国产乱子伦精品免费| 2021国产成人精品久久| 91精品国产自产在线老师啪| 免费精品一区二区三区第35| 51国偷自产精品一区在线视频| 99热都是精品久久久久久| 国产香蕉国产精品偷在线 | 国产成人精品免费视频大全麻豆| 精品三级AV无码一区|