Socket模拟SOAP消息

问题的提出:

我做了一个图书管理系统,是用三层结构实现的,客户端,服务器处理端和数据端。客户端提出请求,服务器端响应,同时将从数据服务器得来的结果以SOAP消息发送回客户端,客户端解析SOAP消息,将结果显示给用户。

实现方法:

好了,话不多说,现在开始进入正题:

在接到客户端发来的请求后,我用ADO连接数据服务器并查询(我用的是Access),得到结果集Recordset以后,将结果集中有关图书信息格式化成XML文档,将其以SOAP消息形式发送回客户端

//************************封装成SOAP消息发送回客户端************************//
      int MaxRows=0;//用来获得总的行数
      while(!pRs->EndOfFile)
      {
        MaxRows++;
        pRs->MoveNext();
      }
      pRs->MoveFirst();//这是必须的,现在记录已是最后一行了

      int nFields;
      nFields=pRs->Fields->GetCount(); //得到字段总数

      CMarkup xml;
      xml.SetDoc("<?xml version=\"1.0\" encoding=\"GB2312\"?>\r\n");
      xml.AddElem( "RESULT" );
      for(int j=0;j<MaxRows;j++)
      {
        xml.AddChildElem( "BOOK" );
        xml.IntoElem();
        for(int k=0;k<nFields;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发送
      send(m_sockClient[i],(char *)buf,file.GetLength()+1,0);
      file.Close();

时间: 2016-09-18

Socket模拟SOAP消息的相关文章

利用socket.io实现消息实时推送

项目背景介绍 最近在写的项目中存在着社交模块,需要实现这样的一个功能:当发生了用户被点赞.评论.关注等操作时,需要由服务器向用户实时地推送一条消息.最终完成的项目地址为:socket-message-push,这里将介绍一下实现的思路及部分代码. 项目的流程中存在着这样的几个对象: 用 Java 实现的后端服务器 用 Node.js 实现的消息推送服务器 用户进行操作的客户端 事件处理的流程如下: 用户进行点赞操作时,后端服务器会进行处理,并向 Node.js 消息推送服务器发送一条消息 Nod

使用Soap消息调用Web Services

services|web Web Services技术使异种计算环境之间可以共享数据和通信,达到信息的一致性.随着异种计算机环境的不断增加,我们会更加经常的调用各种不同计算机体系中编写和发布的Web Services,作者在本文中给出了使用VB应用程序调用java平台编写和发布的Web Services的实践过程, 并且分析了如何根据WSDL文件构造SOAP消息的方法.    一 SOAP简介     1.SOAP定义     SOAP(Simple Object Access Protocol

利用WebSphere Process Server v6.2.0.1 中的JAX-WS绑定传递SOAP消息附件

前言 Web 服务是目前 SOA 实现中的关键技术之一.新版本的 WebSphere Process Server (WPS) v6.2.0.1 在支持原有 JAX-WS 绑定的基础上,增加了对未被引用(unreferenced)SOAP 消息附件的支持,如下图 1 所示. 图 1. SOAP 消息附件转换 WPS 运行时的 JAX-WS Web 服务绑定能够捕获 SOAP 消息附件并将之附加到 SMO(Service Message Object)中的附件部分,该附件可以随着 SMO 在 SC

c# webservice-C#带附件的soap消息怎么处理

问题描述 C#带附件的soap消息怎么处理 下面是WSDL文件使用命令生成的service.cs文件 //------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.296 // // Changes to this file may cause incorre

socket编程发送消息出现socket closed求大神,急

问题描述 socket编程发送消息出现socket closed求大神,急 import java.io.DataInputStream; import java.io.EOFException; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class Server { ServerSocket ss; Socket s ; Clients clients; Da

soap消息中的SoapAction应该使用wsdl中的哪一个?

问题描述 soap消息中的SoapAction应该使用wsdl中的哪一个? 在wsdl的binding中有如下内容 那么客户端发送的soap消息中的SoapAction到底是哪一个呢? 还有wsdlsoap:body use="literal"这一句是什么意思呢? 解决方案 是后缀为Request的还是Response的呢?

服务器-socket客户端发送消息问题

问题描述 socket客户端发送消息问题 现在需求是两个客户端和一个服务端,一个客户端向服务端发送消息,然后服务端再将消息发送给第二个客户端,都是长连接,第一次发送没问题,但是再点发送第二个客户端就收不到消息了,服务器也收不到(下面服务端代码) 解决方案 通过这个来看的话,你的服务端实际上也就是相当于一个网关的效果,用来转发消息的,这种情况下,如果你服务端都没收到消息的话,你可以自己调试看看是否两者之间的连接已经断开 或者说两者之间的数据包解包不正确导致没处理你的流程. 解决方案二: java

PHP socket 模拟POST 请求实例代码_php技巧

我们用到最多的模拟POST请求几乎都是使用php curl来实现了,没考虑到PHP socket也可以实现,今天看到朋友写了一文章,下面我来给大家分享一下PHP socket模拟POST请求实例. 以前模拟post请求俺都用PHP curl扩展实现来着,没想过PHP socket也可以实现.最近翻了下相关资料才发现原来没有那么高深,只是以前一直没有完全理解post的原理和本质而已,其实就是发送给目的程序一个标志为post的协议串如下: POST /目的程序url HTTP/1.1 Accept:

PHP socket模拟POST请求实例

以前模拟post请求俺都用PHP curl扩展实现来着,没想过PHP socket也可以实现.最近翻了下相关资料才发现原来没有那么高深,只是以前一直没有完全理解post的原理和本质而已,其实就是发送给目的程序一个标志为post的协议串如下: POST /目的程序url HTTP/1.1 Accept: 接收信息格式 Referer: url来路 Accept-Language: 接收语言 Content-Type: application/x-www-form-urlencoded Cookie